Пример анимации и использования раздела start

start {
 gint l=-20
 gint n=0
}

plate (0,0,-270)-(0,0,-1) #0
plate (0,0,270)-(0,0,1) #1

vec v1p
vec v2p
vec v1i
vec v1j
vec v2i
vec v2j
dbl i
dbl j

v1p.x=30*cos(-9*l*pi/180)
v1p.y=30*sin(-9*l*pi/180)
v1p.z=-9*30
v2p.x=-30*cos(-9*l*pi/180)
v2p.y=-30*sin(-9*l*pi/180)
v2p.z=-9*30

for k=-8 to 9 {
  i=k
  j=i+1
  v1i.x=30*cos(i*l*pi/180)
  v1i.y=30*sin(i*l*pi/180)
  v1i.z=i*30

  v2i.x=-30*cos(i*l*pi/180)
  v2i.y=-30*sin(i*l*pi/180)
  v2i.z=i*30

  v1j.x=30*cos(j*l*pi/180)
  v1j.y=30*sin(j*l*pi/180)
  v1j.z=j*30

  v2j.x=-30*cos(j*l*pi/180)
  v2j.y=-30*sin(j*l*pi/180)
  v2j.z=j*30

  v1j=v1j-v1p
  v2j=v2j-v2p

  cilin v1p-v1i-20
  plate v1i-v1j
  cilin v2p-v2i-20
  plate v2i-v2j

  v1p=v1i
  v2p=v2i
}

plate (0,0,-290)-(0,0,-1) #74
plate (0,0,290)-(0,0,1) #75
cilin (0,0,-270)-(0,0,-290)-80 #76
cilin (0,0,270)-(0,0,290)-80 #77


2,$7F7F7F,O0+O3
4,$7F7F7F,O0+O5
for k=1 to 32 {
  j=4+k*2
  model[j], $7F7F7F,^O[j-3]+O[j+1]
}
70, $7F7F7F,^O67+O1
72, $7F7F7F,^O69+O1
0,$7F7F7F,^O76
1,$7F7F7F,^O77
74,$7F7F7F,^O76
75,$7F7F7F,^O77
76,$7F7F7F,^O0+O74
77,$7F7F7F,^O1+O75
if n=0 then {
  l=l+1
}
else {
  l=l-1
}
if l=20 then {
  n=1
}
if l=-20 then {
  n=0
}
start{
  scene
  camera (0,-480,0)-(0,0,0)-0.3-1000
 //scenerotate (0,0,0)-(2,0,0)
}


рис. 16

Анимированная картинка (~800К)

В данном примере язык программирования выполняет двойную работу:
формирует сложное многоэлементное изображение модели,
а второе - корректирует глобальные переменные, отвечающие за параметры анимации.
Глобальные переменные объявлены в разделе start.

Перейти на следующую страницу Перейти на предыдущую страницу
Сайт управляется системой uCoz