Magnus Lundin
magnus.lundin@hh.se
KUB - En roterande kub i 3D
©1997 Magnus Lundin
Programmet är skrivet i Delphi 2.0 kub.exe finns i filen kubexe.zip och kan köras utan Delphi.
För att arbeta med källkoden:
Packa upp kubproj.zip i ett eget bibliotek.
Öppna projektfilen kub.dpr i Delphi
Kort beskrivning av programmet:
Unit UCube2 definierar ett huvudformulär 'Form1' som innehåller ritfönstret samt
en slider som kontrollerar rotationshastigheten och en avslutnings
knapp. Huvudformuläret innehåller dessutom ett Timer objekt som periodiskt
anropar ritrutinen 'RoteraOchRita'.
Unit U3DMatte innehåller typdeklarationer och beräkningsrutiner för 3D matematiken.
För att få jämnare animering ritas kuben först till en bakgrundsbitmap som
sedan kopieras över till skärmfönstret när hela kuben är färdigritad.
Funktionerna i UCube2
Uppstart:
procedure FormCreate(Sender: TObject);
Här skapas den oroterade kuben, en rotationsaxel samt bakgrundsbitmappen.
Hantera kontroller och fönsterstorlek:
procedure FormResize(Sender: TObject);
Justera skalfaktorer när fönstrets storlek ändras
procedure ScrollBar1Change(Sender: TObject);
Justera hastigheten
procedure Button1Click(Sender: TObject);
Avslutar programmet vid tryck på Avsluta knappen.
Ritrutiner:
procedure RoteraOchRita(Sender: TObject);
Ändra rotationsvinkel och beräknar den roterade kuben.
procedure FormPaint(Sender: TObject);
Ritar kuben till bakgrundsbitmappen och kopierar sedan denna till skärmfönstret.
procedure RitaKub(p:Array of Punkt3D);
Ritar kubens sidor i olika färger
procedure RitaKvadrat(var p1,p2,p3,p4:Punkt3D;c:TColor);
Ritar en färgad 3D kvadrat
function projektion(p:Punkt3D):TPoint;
Projicerar en punkt från 3D koordinater till skärmkoordinater
Magnus Lundin
Lektor i Matematik
Högskolan i Borås
Tel 031-711 57 54
E-post: magnus.lundin@hh.se
Länkar till fler artiklar som handlar om 3D grafik:
Animerad 3D grafik, Gunnar Jutelius 96/1
3D grafik utan tårar: Ray Dreamer Designer, Gunnar Jutelius 95/4
3D Studio till MAX, Gunnar Jutelius 97/4
Bakom kulisserna & 3D Teatern, Carina Näslundh 97/2
3D Teatern, Teatertidningen
Datorn i Utbildningen nr 4 1997. Artiklar ur Datorn i Utbidlningen är copyrightskyddade ©. De får
användas för enskilt bruk. I övrigt får de
enbart spridas efter överenskommelse med redaktionen. Vill
du ha hela numret på papper, sänd en
beställning via detta system!
|