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.
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á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ú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ó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);