one more step into the face problem

main
Alexandre B A Villares 2018-10-22 22:27:47 -02:00
rodzic 45c59352c4
commit 3952619802
3 zmienionych plików z 56 dodań i 16 usunięć

Wyświetl plik

@ -1,7 +1,7 @@
class Node():
nodes = []
grid = dict()
ver = set()
ver = []
def __init__(self, x, y, z):
self.ix = x

Wyświetl plik

@ -0,0 +1,39 @@
def order_segments(unord):
# first sort the segments
p0, p1 = unord.pop()
ord = [(p0, p1)]
while unord:
for pair in unord:
if p0 in pair or p1 in pair:
ord.append(pair)
unord.remove(pair)
p0, p1 = pair[0], pair[1]
break
else: # break a possible infinite while
print("malformed edge sequence")
break
## # now fix each segment's internal vertex order
## unord = ord
## p0, p1 = unord.pop(0)
## if p1 != unord[0][0]:
## p1, p0 = p0, p1
## ord = [(p0, p1)]
## for pair in unord:
## if p1 == pair[0]:
## p0, p1 = pair[0], pair[1]
## else:
## p0, p1 = pair[1], pair[0]
## ord.append((p0, p1))
# if you want the vertex points only :)
p0, p1 = ord.pop(0)
if p1 != ord[0][0]:
p1, p0 = p0, p1
points = [p0]
for pair in ord:
if p1 == pair[0]:
p0, p1 = pair[0], pair[1]
else:
p0, p1 = pair[1], pair[0]
points.append(p0)
return points

Wyświetl plik

@ -9,6 +9,7 @@ from random import choice
from random import randint
from node import Node
from order_segments import order_segments
def setup():
global ang
@ -21,29 +22,23 @@ def setup():
cam.setMaximumDistance(750)
random_seed(101)
init_grid(GRID_SIZE)
global segmentos, first, next_, ordenados
for l in range(1):
segmentos = [t for t in Node.ver if t[0][3] == l]
first, next_ = segmentos[-1]
# ordenados = sort(segmentos)
def draw():
global ang, segmentos, next_
background(0)
rotateY(ang)
for node in Node.nodes:
node.plot()
node.plot()
for l in range(GRID_SIZE):
fill(255)
beginShape()
for (x, y, z, iz), (x2, y2, z2, _) in segmentos:
if l == iz:
stroke(128, 200, 200)
fill(255, 100)
beginShape()
for (x, y, z, iz) in points:
if 0 == iz:
vertex(x, y, z-10)
vertex(x2, y2, z2-10)
endShape()
endShape()
# while len(segmentos)>2:
@ -73,6 +68,12 @@ def init_grid(grid_size):
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():