kopia lustrzana https://github.com/villares/sketch-a-day
				
				
				
			
		
			
				
	
	
		
			58 wiersze
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			58 wiersze
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
| 
 | |
| """
 | |
| s18030c - 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.
 | |
| """
 | |
| add_library('peasycam')
 | |
| LIST, speed = [], [0, 0]
 | |
| SAVE_FRAME, FRAME_COUNT = False, 0
 | |
| 
 | |
| def setup():
 | |
|     global cam
 | |
|     cam = PeasyCam(this, 400)
 | |
|     cam.setLeftDragHandler(None)      # nenhum Handler para o botão da esquerda
 | |
|     orbitDH = cam.getRotateDragHandler()  # pega o RotateDragHandler
 | |
|     cam.setRightDragHandler(orbitDH) # joga para o botão da direita
 | |
|     size(500, 500, P3D)
 | |
|     colorMode(HSB)
 | |
|     noFill()
 | |
| 
 | |
| def draw():
 | |
|     global SAVE_FRAME, FRAME_COUNT
 | |
|     background(100)
 | |
|     for i, (w, x, y, px, py) in enumerate(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(abs(w)/2)
 | |
|         with pushMatrix():
 | |
|             translate(0, 0, (i  - len(LIST))*2)
 | |
|             ellipse(x - width/2, y - height/2, w ** 2, w ** 2)
 | |
| 
 | |
|     x, y, px, py = mouseX, mouseY, pmouseX , pmouseY
 | |
|     # squareroot of dist to previous mouse 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
 | |
| 
 | |
|     if mousePressed and mouseButton == LEFT:
 | |
|         cam.reset()
 | |
|         LIST.append((w, x, y, px, py))
 | |
|         
 | |
|     if SAVE_FRAME and FRAME_COUNT < 256:
 | |
|         saveFrame("####.tga")
 | |
|         FRAME_COUNT += 1
 | |
|     elif SAVE_FRAME:
 | |
|         SAVE_FRAME = False
 | |
|         print "Recording finished."
 | |
| 
 | |
| 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." |