home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Virtual Reality Homebrewer's Handbook
/
vr.iso
/
vroom
/
hand.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1996-03-19
|
5KB
|
178 lines
program test;
uses vroom,crt, fix_math;
var thumbtop, thumbbot : file_object3d;
fing1bot, fing1mid, fing1top : file_object3d;
fing2bot, fing2mid, fing2top : file_object3d;
fing3bot, fing3mid, fing3top : file_object3d;
fing4bot, fing4mid, fing4top : file_object3d;
palm : file_object3d;
c,c1 : integer;
tv : face_vertex_ptr;
tf : face_ptr;
ch : char;
ok : boolean;
begin
Init_System;
Set_Ambient_Intensity(0.5);
Set_Light(0.75,0,-1,-0.75);
thumbbot.Init('hex1.3d');
thumbtop.Init('hex1.3d');
fing1top.Init('hex1.3d');
fing1mid.Init('hex1.3d');
fing1bot.Init('hex1.3d');
fing2top.Init('hex1.3d');
fing2mid.Init('hex1.3d');
fing2bot.Init('hex1.3d');
fing3top.Init('hex1.3d');
fing3mid.Init('hex1.3d');
fing3bot.Init('hex1.3d');
fing4top.Init('hex1.3d');
fing4mid.Init('hex1.3d');
fing4bot.Init('hex1.3d');
palm.Init('palm.3d');
palm.addchild(@thumbbot);
palm.addchild(@fing1bot);
palm.addchild(@fing2bot);
palm.addchild(@fing3bot);
palm.addchild(@fing4bot);
palm.Set_Reference_Point(-11.75,40,0);
thumbbot.addchild(@thumbtop);
fing1bot.addchild(@fing1mid);
fing1mid.addchild(@fing1top);
fing2bot.addchild(@fing2mid);
fing2mid.addchild(@fing2top);
fing3bot.addchild(@fing3mid);
fing3mid.addchild(@fing3top);
fing4bot.addchild(@fing4mid);
fing4mid.addchild(@fing4top);
thumbbot.translate(2.6,15,0);
thumbtop.translate(0,-15,0);
thumbbot.RotateZ(5);
fing1bot.translate(-2.6,0,0);
fing1mid.translate(0,-15,0);
fing1top.translate(0,-15,0);
fing2bot.translate(-7.6,0,0);
fing2mid.translate(0,-15,0);
fing2top.translate(0,-15,0);
fing3bot.translate(-13.6,0,0);
fing3mid.translate(0,-15,0);
fing3top.translate(0,-15,0);
fing4bot.translate(-18.6,0,0);
fing4mid.translate(0,-15,0);
fing4top.translate(0,-15,0);
fing1top.Scale_About(1,0.75,1,fixed_to_real(fing1top.reference_point.x),-23,0);
fing2top.Scale_About(1,0.75,1,fixed_to_real(fing2top.reference_point.x),-23,0);
fing3top.Scale_About(1,0.75,1,fixed_to_real(fing3top.reference_point.x),-23,0);
fing4top.Scale_About(1,0.75,1,fixed_to_real(fing4top.reference_point.x),-23,0);
fing1bot.Scale_About(1,0.9,1,fixed_to_real(fing1bot.reference_point.x),7,0);
fing3bot.Scale_About(1,0.9,1,fixed_to_real(fing3bot.reference_point.x),7,0);
fing4bot.Scale_About(1,0.75,1,fixed_to_real(fing4bot.reference_point.x),7,0);
Set_View(600,5,0,0,0,0);
Set_Window(-20,-15,20,15);
Redraw_Scene;
for c1:=1 to 3 do
begin
for c:=1 to 15 do
begin
fing1bot.RotateX(5);
fing2bot.RotateX(5);
fing3bot.RotateX(5);
fing4bot.RotateX(5);
fing1mid.RotateX(5);
fing2mid.RotateX(5);
fing3mid.RotateX(5);
fing4mid.RotateX(5);
fing1top.RotateX(5);
fing2top.RotateX(5);
fing3top.RotateX(5);
fing4top.RotateX(5);
thumbbot.RotateX(5);
thumbtop.RotateZ(-5);
redraw_scene;
end;
delay(500);
for c:=1 to 15 do
begin
fing1bot.RotateX(-5);
fing2bot.RotateX(-5);
fing3bot.RotateX(-5);
fing4bot.RotateX(-5);
fing1mid.RotateX(-5);
fing2mid.RotateX(-5);
fing3mid.RotateX(-5);
fing4mid.RotateX(-5);
fing1top.RotateX(-5);
fing2top.RotateX(-5);
fing3top.RotateX(-5);
fing4top.RotateX(-5);
thumbtop.RotateZ(5);
thumbbot.RotateX(-5);
redraw_scene;
end;
delay(500);
end;
for c:=1 to 15 do
begin
fing1bot.RotateX(5);
fing2bot.RotateX(5);
fing3bot.RotateX(5);
fing4bot.RotateX(5);
fing1mid.RotateX(5);
fing2mid.RotateX(5);
fing3mid.RotateX(5);
fing4mid.RotateX(5);
fing1top.RotateX(5);
fing2top.RotateX(5);
fing3top.RotateX(5);
fing4top.RotateX(5);
thumbbot.RotateX(5);
thumbtop.RotateZ(-5);
redraw_scene;
end;
repeat
ch:=ReadKey;
ok:=true;
case ch of
'8': palm.RotateY(-10);
'2': palm.RotateY(10);
'4': palm.RotateZ(-10);
'6': palm.RotateZ(10);
'1': palm.RotateX(10);
'3': palm.RotateX(-10);
'p': send_screen_to_pcx('hand.pcx');
else
ok:=false;
end;
if ok then
redraw_scene;
until ch='q';
stop_graphics;
end.