kopia lustrzana https://github.com/villares/sketch-a-day
				
				
				
			
		
			
	
	
		
			72 wiersze
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
		
			
		
	
	
			72 wiersze
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
| 
								 | 
							
								add_library('pdf')
							 | 
						||
| 
								 | 
							
								linhas = []
							 | 
						||
| 
								 | 
							
								divisoes = 5
							 | 
						||
| 
								 | 
							
								salvar_pdf = False
							 | 
						||
| 
								 | 
							
								ponto_clique = []
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def setup():
							 | 
						||
| 
								 | 
							
								    size(500, 500)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def draw():
							 | 
						||
| 
								 | 
							
								    if salvar_pdf:
							 | 
						||
| 
								 | 
							
								        beginRecord(PDF, "####.pdf")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    stroke(255)  # traço branco
							 | 
						||
| 
								 | 
							
								    strokeWeight(10)  # espessura do traço ("peso")
							 | 
						||
| 
								 | 
							
								    mh, mv = width / 2, height / 2
							 | 
						||
| 
								 | 
							
								    translate(mh, mv)
							 | 
						||
| 
								 | 
							
								    background(0, 128, 32)  # verde (mude a sua cor!)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    for num in range(divisoes):
							 | 
						||
| 
								 | 
							
								        rotate(radians(360. / divisoes))
							 | 
						||
| 
								 | 
							
								        for linha in linhas:
							 | 
						||
| 
								 | 
							
								            x1, y1, x2, y2 = linha
							 | 
						||
| 
								 | 
							
								            line(x1 - mh, y1 - mv, x2 - mh, y2 - mv)
							 | 
						||
| 
								 | 
							
								            scale(1, -1)
							 | 
						||
| 
								 | 
							
								            line(x1 - mh, y1 - mv, x2 - mh, y2 - mv)
							 | 
						||
| 
								 | 
							
								            scale(1, -1)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if salvar_pdf:
							 | 
						||
| 
								 | 
							
								        endRecord()
							 | 
						||
| 
								 | 
							
								        global salvar_pdf
							 | 
						||
| 
								 | 
							
								        salvar_pdf = False
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if ponto_clique:
							 | 
						||
| 
								 | 
							
								        for num in range(divisoes):
							 | 
						||
| 
								 | 
							
								            rotate(radians(360 / divisoes))
							 | 
						||
| 
								 | 
							
								            line(ponto_clique[0] - mh, ponto_clique[1] - mv,
							 | 
						||
| 
								 | 
							
								                 mouseX - mh, mouseY - mv)
							 | 
						||
| 
								 | 
							
								            scale(1, -1)
							 | 
						||
| 
								 | 
							
								            line(ponto_clique[0] - mh, ponto_clique[1] - mv,
							 | 
						||
| 
								 | 
							
								                 mouseX - mh, mouseY - mv)
							 | 
						||
| 
								 | 
							
								            scale(1, -1)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def mousePressed():  # def mouseDragged():
							 | 
						||
| 
								 | 
							
								    if ponto_clique:
							 | 
						||
| 
								 | 
							
								        px, py = ponto_clique
							 | 
						||
| 
								 | 
							
								        linhas.append((px, py, mouseX, mouseY))
							 | 
						||
| 
								 | 
							
								    if mouseButton == LEFT:
							 | 
						||
| 
								 | 
							
								        ponto_clique[:] = mouseX, mouseY
							 | 
						||
| 
								 | 
							
								    elif mouseButton == RIGHT:
							 | 
						||
| 
								 | 
							
								        ponto_clique[:] = []
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def keyPressed():
							 | 
						||
| 
								 | 
							
								    global salvar_pdf, divisoes
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if key == "a":
							 | 
						||
| 
								 | 
							
								        linhas[:] = []  # esvazia lista de linhas
							 | 
						||
| 
								 | 
							
								        ponto_clique[:] = []
							 | 
						||
| 
								 | 
							
								    if key == "g":
							 | 
						||
| 
								 | 
							
								        saveFrame("#####.png")
							 | 
						||
| 
								 | 
							
								        print("salvando PNG")
							 | 
						||
| 
								 | 
							
								    if key == "p":
							 | 
						||
| 
								 | 
							
								        salvar_pdf = True
							 | 
						||
| 
								 | 
							
								        print("salvando PDF")
							 | 
						||
| 
								 | 
							
								    if key == BACKSPACE and linhas:
							 | 
						||
| 
								 | 
							
								        linhas.pop()
							 | 
						||
| 
								 | 
							
								    if key == "-" and divisoes > 2:
							 | 
						||
| 
								 | 
							
								        divisoes -= 1
							 | 
						||
| 
								 | 
							
								    if key == "+" or key == "=":
							 | 
						||
| 
								 | 
							
								        divisoes += 1        
							 | 
						||
| 
								 | 
							
								        
							 |