kopia lustrzana https://github.com/villares/sketch-a-day
				
				
				
			
		
			
				
	
	
		
			104 wiersze
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			104 wiersze
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Python
		
	
	
# Alexandre B A Villares - https://abav.lugaralgum.com/sketch-a-day
 | 
						|
SKETCH_NAME = "s284"  # 2018109
 | 
						|
OUTPUT = ".gif"
 | 
						|
GRID_SIZE = 4
 | 
						|
 | 
						|
add_library('peasycam')
 | 
						|
from random import seed
 | 
						|
from random import choice
 | 
						|
from random import randint
 | 
						|
 | 
						|
from node import Node
 | 
						|
from order_segments import order_segments
 | 
						|
 | 
						|
def setup():
 | 
						|
    global ang
 | 
						|
    ang = 0
 | 
						|
    size(500, 500, P3D)
 | 
						|
    colorMode(HSB)
 | 
						|
    strokeWeight(2)
 | 
						|
    cam = PeasyCam(this, 100)
 | 
						|
    cam.setMinimumDistance(750)
 | 
						|
    cam.setMaximumDistance(750)
 | 
						|
    random_seed(101)
 | 
						|
    init_grid(GRID_SIZE)
 | 
						|
            
 | 
						|
def draw():
 | 
						|
    global ang, segmentos, next_
 | 
						|
    background(0)
 | 
						|
    rotateY(ang)
 | 
						|
    
 | 
						|
    for node in Node.nodes:
 | 
						|
        node.plot()       
 | 
						|
    
 | 
						|
 | 
						|
    stroke(128, 200, 200)   
 | 
						|
    fill(255, 100)      
 | 
						|
    beginShape()    
 | 
						|
    for (x, y, z, iz) in points:
 | 
						|
            if 0 == iz:
 | 
						|
                vertex(x, y, z-10)
 | 
						|
    endShape()
 | 
						|
 | 
						|
            # while len(segmentos)>2:
 | 
						|
 | 
						|
        
 | 
						|
    # if ang <= TWO_PI:
 | 
						|
    #     #saveFrame("###.png")
 | 
						|
    #     ang += 0.02
 | 
						|
                                                
 | 
						|
def init_grid(grid_size):
 | 
						|
    Node.border = 10
 | 
						|
    Node.spacing = (width - Node.border * 2) / grid_size
 | 
						|
    Node.nodes = []
 | 
						|
    Node.ver = []
 | 
						|
    for x in range(grid_size):
 | 
						|
        for y in range(grid_size):
 | 
						|
            for z in range(1):
 | 
						|
                new_node = Node(x, y, z)
 | 
						|
                Node.nodes.append(new_node)
 | 
						|
                Node.grid[x, y, z] = new_node
 | 
						|
                if randint(1, 10) > 5:
 | 
						|
                    new_node.cor = color(z * 28, 255, 255)
 | 
						|
                else:
 | 
						|
                    new_node.cor = None
 | 
						|
 | 
						|
    for node in Node.nodes:
 | 
						|
        if node.cor:
 | 
						|
            node.update_nbs()
 | 
						|
            
 | 
						|
 | 
						|
    for l in range(1):
 | 
						|
        global points
 | 
						|
        segmentos = [t for t in Node.ver if t[0][3] == l]
 | 
						|
    # print(set(segmentos))  
 | 
						|
    points = order_segments(set(segmentos))
 | 
						|
    print(points)
 | 
						|
    
 | 
						|
 | 
						|
def keyPressed():
 | 
						|
    if key == "n":
 | 
						|
        init_grid(GRID_SIZE)
 | 
						|
    if key == "s": saveFrame("###.png")
 | 
						|
    
 | 
						|
    
 | 
						|
def random_seed(s=None):
 | 
						|
    global rnd_seed
 | 
						|
    if s:
 | 
						|
        rnd_seed = s
 | 
						|
        seed(rnd_seed)
 | 
						|
        randomSeed(rnd_seed)    
 | 
						|
    else:
 | 
						|
        seed(rnd_seed)
 | 
						|
        randomSeed(rnd_seed)
 | 
						|
    
 | 
						|
# print text to add to the project's README.md             
 | 
						|
def settings():
 | 
						|
    println(
 | 
						|
"""
 | 
						|

 | 
						|
 | 
						|
{1}: [code](https://github.com/villares/sketch-a-day/tree/master/{0}) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)]
 | 
						|
""".format(SKETCH_NAME, SKETCH_NAME[1:], OUTPUT)
 | 
						|
    )
 |