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 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. 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. 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. Í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. 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. 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. 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.3. lépés
4. lépés
5. lépés
6. lépés
7. lépés
8. lépés
9. lépés