200 Programas auxiliares
8scene.forward=(0.5,0,-1)
9
10# Referenciais em movimento, onde estarão as duas massas
11f1 = frame(pos=(0, 0, 0))
12f2 = frame(pos=(0, -4.2, 0))
13
14# Mola de cima
15ang = arange(-pi/2.,pi,0.1)
16b0 = curve(radius=0.03,y = 5.2+0.23 *sin(ang),z = 0.23*cos(ang))
17b0.append(pos=(0,5,0))
18b0.append(pos=(0,4.5,0))
19b0.append(pos=(0,4.5,0.32))
20mola1 = helix(pos=(0,4.5,0), radius=0.3, thickness=0.05,
21 coils=40)
22b1 = curve(frame=f1, radius=0.03,
23 pos=[(0,-0.3,0.32),(0,-0.3,0),(0,0.7,0),(0,0.7,0.32)])
24
25# Mola de baixo
26mola2 = helix(frame=f1, pos=(0,-0.3,0), radius=0.3,
27 thickness=0.05, coils=40)
28b2 = curve(frame=f2, radius=0.03,
29 pos=[(0,0,0),(0,0.7,0),(0,0.7,0.32)])
30
31# As duas massas
32c1 = cylinder(frame=f1, pos=(0,0,0),radius=0.5,axis=(0,0.4,0),
33 color=(0.3,0.3,0.3))
34c2 = cylinder(frame=f2, pos=(0,0,0),radius=0.5,axis=(0,0.4,0),
35 color=(0.3,0.3,0.3))
36
37# Barras do suporte
38s1 = cylinder(pos=(3,5.2,0),radius=0.2, axis=(-4,0,0))
39s2 = cylinder(pos=(2.5,5.2,0),radius=0.6, axis=(-1,0,0),
40 color=(0.5,0.5,0.6))
41s3 = cylinder(pos=(2,-5,0.4),radius=0.2, axis=(0,11,0))
42s4 = cylinder(pos=(2,-6,0.4),radius=0.8, axis=(0,1,0),
43 color=(0.9,0.9,0.6))
44
45# Base
46base = box(pos=(2,-6.2,0.4), size=(5,0.4,5),
47 color=(0.7,0.4,0.1))
48
49# Função que desloca as duas massas e estica/comprime
50# as molas, de acordo com os valores das duas variáveis
51# de estado y1, y2
52
53def(y1,y2):