Magasszintû objektumok 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