Ako vykresliť kruh v OpenGL

Autor: Clyde Lopez
Dátum Stvorenia: 23 August 2021
Dátum Aktualizácie: 12 Smieť 2024
Anonim
Silver will kill you. These zodiac signs shouldn’t wear silver jewelry.
Video: Silver will kill you. These zodiac signs shouldn’t wear silver jewelry.

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)
  1. 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.

  2. 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.

  3. 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.


  4. 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.

  5. 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.

  6. 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.

  7. Po zacyklení zadajte nasledujúci riadok kódu:

    glEnd () GO

    To povie OpenGL, že ste dokončili kreslenie riadkov.

  8. 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.

  9. 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