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); Hantera kontroller och fönsterstorlek: procedure FormResize(Sender: TObject); procedure ScrollBar1Change(Sender: TObject); procedure Button1Click(Sender: TObject); Ritrutiner: procedure RoteraOchRita(Sender: TObject); procedure FormPaint(Sender: TObject); procedure RitaKub(p:Array of Punkt3D); procedure RitaKvadrat(var p1,p2,p3,p4:Punkt3D;c:TColor); function projektion(p:Punkt3D):TPoint; 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 |