Obsah
OpenGL, alebo Open Graphics Library, je grafické API (Application Programming Interface) pre písanie 2D a 3D aplikácií v rôznych jazykoch a programovacích platformách. Môže byť použitý na vykreslenie všetkého od jednoduchých a primitívnych objektov až po zložité 3D scény. Open GL je široko používaný v počítačovom dizajne, vedeckej vizualizácii, letovej simulácii a videohrách. Aj keď OpenGl nemá metódy priameho kreslenia kruhu, je možné vytvoriť jeden pomocou radu riadkov. Ak chcete nakresliť kruh, musíte mať základné znalosti o OpenGL.
inštrukcia
Neexistuje žiadna priama metóda na vytvorenie kruhu v OpenGL, ale je stále možné zostaviť jeden so správnymi riadkami kódu (Creatas / Creatas / Getty Images)-
Vytvorte základný program s oknom výrezu OpenGL. Ak nie ste oboznámení s týmto procesom, na stránke OpenGL nájdete návod.
-
Pridajte súbor math.h.header do programu zadaním nasledujúceho kódu na začiatku programu: #include
, To vám poskytne funkcie cos () a sin () (sínus a kosínus) potrebné na výpočet kruhu. -
Spustite metódu kruhu pridaním nasledujúceho kódu pred zobrazením funkcie spätného volania:
void drawCircle (GLint x, GLint y, GLint ray, int num_lines) {}
Premenné "x" a "y" sa použijú na definovanie stredu kruhu vo vašom okne, zatiaľ čo "ray" určuje polomer kruhu. Celé číslo "num_lines" je počet riadkov použitých na vytvorenie kruhu. Čím väčšie je toto číslo, tým hladší bude kruh.
-
Do kláves pridajte nasledujúci konfiguračný kód:
plovákový uhol GO int num_lines GO glColor3f (0.0, 0.0, 0.0) GO.
Premenný "uhol" bude obsahovať uhol čiar použitých na vytvorenie kruhu. Volanie funkcie glColor3f () nastaví farbu riadkov na čiernu, pričom séria troch 0 zodpovedá intenzite červenej, zelenej a modrej na stupnici od 0 do 1.
-
Pridajte nasledujúci kód pod funkciu glColor3f () z kroku 4:
glBegin (GL_LINE_LOOP) GO
To hovorí OpenGL, že akékoľvek ďalšie riadky zahŕňajú čiary kreslenia. Konkrétne to bude kresliť "GL_LINE_LOOP", čo je séria prepojených riadkov.
-
Po volaní glBegin () zadajte nasledujúci kód z a do slučky:
pre (int i = 0; i <num_lines; i ++) {uhol = i * 2 * M_PI / num_lines; glVertex2f (x + (cos (uhol) * polomer) a + (bez (uhla) * rádius)); }
Táto kravata robí tri veci. Po prvé, iteruje podľa hodnoty "num_lines", kde num_lines je celé číslo, kreslí čiaru pri každej iterácii a má za následok kruh zložený z num_lines priamok. Po druhé, vypočítajte uhol čiar vzhľadom na stred kruhu v radiánoch. "M_P" je konštanta definovaná v math.h reprezentujúcej pi. Nakoniec volanie glVertex2f () vypočíta súradnice koncových bodov riadkov.
-
Po zacyklení zadajte nasledujúci riadok kódu:
glEnd () GO
To povie OpenGL, že ste dokončili kreslenie riadkov.
-
Ak chcete nakresliť kruh v scéne, pridajte volanie z metódy drawCircle () do funkcie spätného volania programu, ktorá musí byť pripravená v kroku 1. Zadajte hodnoty x, y, rádius a a_line, kde x a y predstavujú bod v jeho scéne je polomer polomerom kruhu a num_lines je počet riadkov, ktoré tvoria kruh. Opäť platí, že ak nie ste oboznámení s OpenGL a displejom spätného volania, pozrite si príručku OpenGL.
-
Zostavte a spustite svoj program. Ak ste zadali funkcie správne, mali by sa kompilovať bez chýb. Ak ste zadali hodnoty x, y a polomer, mali by ste vidieť čierny kruh zobrazený na bielom pozadí.
Čo potrebujete
- Počítač s podporou OpenGL
- Textový editor a nástroje pre prekladač jazyka C alebo vývojové prostredie C