Magasszintû objektumok rajzolása

- Bevezetés
- Kocka rajzolása
- Gömb rajzolása
- Kúp rajzolása
- Tórusz rajzolása

Bevezetés

Az OpenGL alapból nem tartalmaz olyan eljárásokat, amelyek magasszintû geometriai objektumok rajzolását teszik lehetõvé. Ezeket az eljárásokat a GLUT tartalmazza. ( emlékeztetõül: a GLUT (Graphics Library Utility Toolkit) az OpenGL egy kibõvítése, amely tartalmazza az ablakok létrehozásához és kezeléséhez szükséges függvényeket, eljárásokat).
A GLUT segítségével lehetõvé válik egyszerû parancsokkal kocka, gömb, kúp, stb. rajzolása. Ahhoz, hogy ezeket a parancsokat használhassuk, szükségünk lesz a glut.h header file-ra.

#include<glut.h>

megj.: ha az elõbbi include direktívát csatoltuk a programunkhoz, akkor az

#include<gl.h>
#include<glu.h>

sorokra már nincs szükség, mert azokat tartalmazza a glut.h.

Kocka rajzolása

Kockát a

void glutSolidCube(GLdouble size);
void glutWireCube(GLdouble size);

eljárásokkal tudunk rajzolni. size adja meg a kocka éleinek hosszát. A glutSolidCube egy kitöltött oldalakkal rendelkezõ kockát rajzol, a glutWireCube pedig csak a kocka éleit rajzolja meg. A kocka középpontja az origóban lesz.

pl.: a

glutWireCube(1.0);

egy 0.4 oldalhosszúságú, origó középpontú kockát rajzol.

Gömb rajzolása

Gömb rajzolására a

void glutSolidSphere(GLdouble radius, GLint slices, GLint stacks);
void glutWireSphere(GLdouble radius, GLint slices, GLint stacks);

eljárásokkal van lehetõség. radius a gömb sugara, slices a z tengely körüli beosztások száma (mint a földrajzi hosszúság), stacks a z tengely menti beosztások száma (mint a földrajzi szélesség). A középpont itt is az origóban lesz.

pl.:

glutWireSphere(0.4,10,10);

Kúp rajzolása

Kúpot a

void glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);
void glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);

eljárásokkal tudunk rajzolni. base a kúp alapjának sugara, height a kúp magassága, slices adja meg a z tengely körüli beosztások számát, stacks pedig a z tengely menti beosztások számát jelenti. A kúp alapja z = 0-nál helyezkedik el, teteje pedig z = height-nél.

pl.:

glutWireCone(0.6,1.5 10,10);

Tórusz rajzolása

Tóruszt a

void glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint nsides, GLint rings);
void glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint nsides, GLint rings);

eljárásokkal tudunk rajzolni. innerRadius a tórusz belsõ sugara, outerRadius a tórusz külsõ sugara, nsides adja meg a radiális részek oldalainak számát, rings pedig a tórusz radiális beosztásainak számát. A tórusz középpontja koordináta-rendszer középpontjában lesz.

pl.:

void glutWireTorus(0.2,0.5,14,14);

<- elõzõ oldal
-> következõ oldal
<-- fõoldal