Update sketch_2020_04_29a.pyde

main
villares 2020-04-29 23:56:11 -03:00
rodzic c290bd30f2
commit 2146816ffe
1 zmienionych plików z 24 dodań i 19 usunięć

Wyświetl plik

@ -10,13 +10,11 @@ from gif_animation_helper import gif_export
sketch_name = 'sketch_2020_04_28a'
points = deque(maxlen=200)
paused = False
DIM = 30
DIM = 60
def setup():
size(300, 300, P3D)
size(500, 500, P3D)
colorMode(HSB)
noFill()
strokeWeight(2)
points.append((PVector(DIM, 0, 0), PVector(0, 0, DIM)))
def draw():
@ -25,20 +23,12 @@ def draw():
rotateY(frameCount / 100.)
for i, (pa, pb) in enumerate(points):
stroke((frameCount + i) % 256, 255, 255)
line(pa.x, pa.y, pa.z, pb.x, pb.y, pb.z)
beginShape()
for i, (pa, pb) in enumerate(points):
stroke(255, 100) #((frameCount + i) % 256, 255, 255)
curveVertex(pa.x, pa.y, pa.z) #, pb.x, pb.y, pb.z)
endShape()
beginShape()
for i, (pa, pb) in enumerate(points):
stroke(255, 100) #((frameCount + i) % 256, 255, 255)
curveVertex(pb.x, pb.y, pb.z) #, pb.x, pb.y, pb.z)
endShape()
fill((frameCount + i) % 256, 255, 255)
bar(pa.x, pa.y, pa.z, pb.x, pb.y, pb.z, 3)
if i > 0:
ppa, ppb = points[i - 1]
bar(pa.x, pa.y, pa.z, ppa.x, ppa.y, ppa.z, 5)
bar(pb.x, pb.y, pb.z, ppb.x, ppb.y, ppb.z, 5)
if not paused:
va, vb = points[-1]
@ -70,3 +60,18 @@ def mousePressed():
if key == 'q':
gif_export(GifMaker, "animation", finish=True)
def bar(x1, y1, z1, x2, y2, z2, weight=10):
"""Draw a box rotated in 3D like a bar/edge."""
p1, p2 = PVector(x1, y1, z1), PVector(x2, y2, z2)
v1 = p2 - p1
rho = sqrt(v1.x ** 2 + v1.y ** 2 + v1.z ** 2)
phi, the = acos(v1.z / rho), atan2(v1.y, v1.x)
v1.mult(0.5)
pushMatrix()
translate(x1 + v1.x, y1 + v1.y, z1 + v1.z)
rotateZ(the)
rotateY(phi)
box(weight, weight, p1.dist(p2))
popMatrix()