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!

[Åter till början av sidan]

Datorn i Utbildningen, Frejgatan 32, 113 26 Stockholm
Uppdaterad: 980730