kopia lustrzana https://github.com/villares/sketch-a-day
58 wiersze
1.8 KiB
Python
58 wiersze
1.8 KiB
Python
"""
|
|
s33 180202c - Alexandre B A Villares
|
|
https://abav.lugaralgum.com/sketch-a-day
|
|
|
|
Drag the mouse over the canvas to draw
|
|
the 'brush' varies with mouse speed.
|
|
"""
|
|
|
|
LIST, speed = [], [0, 0]
|
|
SAVE_FRAME, FRAME_COUNT = False, 0
|
|
|
|
def setup():
|
|
size(500, 500)
|
|
colorMode(HSB)
|
|
noFill()
|
|
|
|
def draw():
|
|
global SAVE_FRAME, FRAME_COUNT
|
|
background(50)
|
|
for w, x, y, px, py in LIST:
|
|
c = map(w, 0, 10, 0, 255) # maps 1 to 10 to 0 to 255 scale
|
|
stroke((c + frameCount) % 255, 255, 255) # circle colors
|
|
#strokeWeight(w)
|
|
ellipse(x, y, w*w, w*w)
|
|
#line(x, y, px, py)
|
|
if len(LIST) > 2 and not mousePressed:
|
|
w0, x0, y0, px0, py0 = LIST[0]
|
|
w1, x1, y1, px1, py1 = LIST[1]
|
|
del LIST[0]
|
|
LIST.append((w0,
|
|
LIST[-1][1] + x0 - x1, #+v.x,
|
|
LIST[-1][2] + y0 - y1, #+v.y,
|
|
LIST[-1][3] + px0 - px1, #+pv.x,
|
|
LIST[-1][4] + py0 - py1 )) #+pv.y))
|
|
elif mousePressed:
|
|
x, y, px, py = mouseX, mouseY, pmouseX, pmouseY
|
|
# squareroot of dist to previous mousse pos
|
|
speed[0] = (dist(x, y, px, py)) ** 0.5
|
|
# mean of 10 minus speed & previous
|
|
w = ((10 - speed[0]) + (10 - speed[1])) / 2
|
|
speed[1] = speed[0] # updates previous speed
|
|
LIST.append((w, x, y, px, py))
|
|
|
|
if SAVE_FRAME and FRAME_COUNT < 500:
|
|
if FRAME_COUNT % 2: saveFrame(str(FRAME_COUNT) + ".tga")
|
|
elif SAVE_FRAME:
|
|
FRAME_COUNT = 0
|
|
SAVE_FRAME = False
|
|
print "Recording finished."
|
|
FRAME_COUNT += 1
|
|
|
|
def keyPressed():
|
|
global SAVE_FRAME, FRAME_COUNT
|
|
if key == ' ':
|
|
LIST[:] = []
|
|
if key == 's' and not SAVE_FRAME:
|
|
SAVE_FRAME, FRAME_COUNT = True, 0
|
|
print "Recording started." |