Kör renderelése az OpenGL-ben

Szerző: Lewis Jackson
A Teremtés Dátuma: 9 Lehet 2021
Frissítés Dátuma: 17 November 2024
Anonim
Kör renderelése az OpenGL-ben - Elektronika
Kör renderelése az OpenGL-ben - Elektronika

Tartalom

Az OpenGL, vagyis az Open Graphics Library egy grafikus API (Application Programming Interface) 2D és 3D alkalmazások írására különféle programozási nyelveken és platformokon. Bármilyen renderelésre használható az egyszerű, primitív tárgyaktól az összetett 3D-s jelenetekig. Az Open GL-t széles körben használják a számítógépes tervezésben, a tudományos vizualizációban, a repülésszimulációban és a videojátékokban. Annak ellenére, hogy az OpenGl-ben nincsenek módszerek egy kör közvetlen megrajzolására, lehetséges egy-egy sor felépítése. A kör megrajzolásához alapszintű ismeretekkel kell rendelkeznie az OpenGL-ről.

1. lépés

Készítsen alapprogramot OpenGL nézetablakkal. Ha még nem ismeri ezt a folyamatot, van egy oktatóanyag az OpenGL oldalon.


2. lépés

Adja hozzá a math.h.header fájlt a programjához, ha beírja a következő kódot a program elejére: #include . Ez biztosítja a kör kiszámításához szükséges cos () és sin () (szinusz és koszinusz) függvényeket.

3. lépés

Indítsa el a kör metódust a következő kód hozzáadásával, mielőtt megjelenítené a visszahívási funkciót:

void drawCircle (GLint x, GLint y, GLint sugár, int szám_sor) {}

Az "x" és "y" változók fogják használni a kör közepének meghatározását az ablakban, míg a "sugár" meghatározza a kör sugarát. A "num_lines" egész szám a kör összeállításához használt sorok száma. Minél nagyobb ez a szám, annál simábban jelenik meg a kör.

4. lépés

Adja hozzá a következő konfigurációs kódot a kulcsok belsejébe:

úszó szög GO int szám_sorok GO glColor3f (0,0, 0,0, 0,0) GO.

A "szög" változó tartalmazza a kör felépítéséhez használt vonalak szögét. A glColor3f () függvény meghívása a vonalak színét fekete színre állítja, ahol a három 0-as sorozat a piros, a zöld és a kék intenzitásának felel meg 0-tól 1-ig terjedő skálán.


5. lépés

Adja hozzá a következő kódot a glColor3f () függvény alá a 4. lépéstől:

glBegin (GL_LINE_LOOP) GO

Ez azt mondja az OpenGL-nek, hogy minden további sor vonalak rajzolásával jár. Pontosabban rajzol egy "GL_LINE_LOOP" -t, amely összekapcsolt vonalak sorozata.

6. lépés

Írja be a következő kódot a for ciklushoz a glBegin () hívás után:

for (int i = 0; i <sorszám; i ++) {szög = i * 2 * M_PI / szám_sor; glVertex2f (x + (cos (szög) * sugár), y + (sin (szög) * sugár)); }

Ez a hurok három dolgot végez. Először a "num_lines" értéke szerint iterál, ahol a num_lines egy egész szám, vonallal rajzolva az egyes iterációkat, és egy kört eredményez, amely numer_lines egyenesekből áll. Másodszor, kiszámítja a vonalak szögét a kör közepéhez viszonyítva radiánban. Az "M_P" a math.h-ben definiált állandó, amely pi-t képvisel. Végül a glVertex2f () hívása kiszámítja a vonalak végpontjainak koordinátáit.


7. lépés

A hurok után írja be a következő kódsort:

glEnd () GO

Ez megmondja az OpenGL-nek, hogy befejezte a vonalak rajzolását.

8. lépés

Ha körbe akar rajzolni egy jelenetet, adjon hozzá egy hívást a drawCircle () metódustól a program visszahívási megjelenítési funkciójához, amelyet az 1. lépésben kell előkészíteni. Adja meg x, y, sugár és szám_sorok értékét, ahol x és y pontot jelölnek a jelenetedben a sugár a kör sugara, a num_lines pedig a kört alkotó vonalak száma. Ismét, ha még nem ismeri az OpenGL-t és a visszahívási képernyőt, olvassa el az OpenGL oktatóanyagot.

9. lépés

Fordítsa le és futtassa a programot. Ha helyesen adta meg a függvényeket, hibátlanul kell lefordítania. Ha megadta az x, y és a sugár értékét, akkor egy fehér alapon fekete kört kell látnia.

A régi zék zékének vizanyerée okkal könnyebb, mint amilyennek hangzik. Cak néhány alapvető ezközzel könnyen cerélhető anyagokat lehet ceréln...

Sárga árnyalatok

John Stephens

November 2024

A árga zó a régi angol "geolu" vagy "geolwe" zóból zármazik. Ez a zín a narancárga é a zöld közötti pektrum láthat&...

Ajánlott