kopia lustrzana https://github.com/villares/sketch-a-day
Update sketch_2020_04_29a.pyde
rodzic
c290bd30f2
commit
2146816ffe
|
|
@ -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,21 +23,13 @@ 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]
|
||||
na = PVector()
|
||||
|
|
@ -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()
|
||||
|
|
|
|||
Ładowanie…
Reference in New Issue