Ako vykresliť kruh v OpenGL

Autor: Judy Howell
Dátum Stvorenia: 3 V Júli 2021
Dátum Aktualizácie: 1 V Júli 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) na písanie 2D a 3D aplikácií v rôznych programovacích jazykoch a platformách. Môže byť použitý na vykreslenie čohokoľvek od jednoduchých, primitívnych objektov po zložité 3D scény. Open GL sa široko používa v počítačovom dizajne, vedeckej vizualizácii, simulácii letov a videohrách. Aj keď OpenGl nemá metódy priameho nakreslenia kruhu, je možné ho vytvoriť pomocou viacerých čiar. Na nakreslenie kruhu budete musieť mať základné znalosti o OpenGL.

Krok 1

Vytvorte základný program s výrezom OpenGL. Ak nie ste oboznámení s týmto procesom, na stránke OpenGL je príručka.


Krok 2

Pridajte do svojho programu súbor math.h.header zadaním nasledujúceho kódu na začiatku programu: #include . Takto získate funkcie cos () a sin () (sínus a kosínus) potrebné na výpočet kruhu.

Krok 3

Začnite metódu kruhu pridaním nasledujúceho kódu pred zobrazením funkcie spätného volania:

void drawCircle (GLint x, GLint y, GLint radius, int num_lines) {}

Premenné „x“ a „y“ sa použijú na definovanie stredu kruhu vo vašom okne, zatiaľ čo „polomer“ určuje polomer kruhu. Celé číslo „num_lines“ je počet riadkov použitých na vytvorenie kruhu. Čím je toto číslo vyššie, tým bude kruh plynulejší.

Krok 4

Pridajte nasledujúci konfiguračný kód do klávesov:

plávajúci 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 čiar na čiernu, kde séria troch 0 zodpovedá intenzite červenej, zelenej a modrej na škále od 0 do 1.


Krok 5

Pridajte nasledujúci kód pod funkciu glColor3f () z kroku 4:

glBegin (GL_LINE_LOOP) GO

Toto hovorí OpenGL, že všetky nasledujúce čiary zahŕňajú kreslenie čiar. Konkrétne nakreslí „GL_LINE_LOOP“, čo je séria prepojených liniek.

Krok 6

Po volaní glBegin () zadajte nasledujúci kód pre cyklus for:

pre (int i = 0; i <cislo_riadku; i ++) {uhol = i * 2 * M_PI / num_line; glVertex2f (x + (cos (uhol) * polomer), y + (sin (uhol) * polomer)); }

Táto slučka robí tri veci. Najskôr iteruje podľa hodnoty „num_lines“, kde num_lines je celé číslo, v každej iterácii nakreslí čiaru a vyústi do kruhu zloženého z priamych čiar num_lines. Po druhé, vypočítava uhol čiar vzhľadom na stred kruhu v radiánoch. "M_P" je konštanta definovaná v math.h predstavujúca pi. Nakoniec volanie glVertex2f () vypočíta súradnice koncových bodov čiar.


Krok 7

Po opakovanom pripojení zadajte nasledujúci riadok kódu:

glEnd () GO

To povedie OpenGL, že ste dokončili kreslenie čiar.

Krok 8

Ak chcete nakresliť kruh na scéne, pridajte volanie z metódy drawCircle () do funkcie zobrazenia spätného volania programu, ktorú je potrebné pripraviť v kroku 1. Zadajte hodnoty x, y, polomer a num_lines, kde x a y predstavujú bod na vašej scéne je polomer polomer kruhu a num_lines počet riadkov, ktoré tvoria kruh. Pokiaľ opäť nepoznáte OpenGL a spätné volanie, prečítajte si tutoriál OpenGL.

Krok 9

Zostavte a spustite svoj program. Ak ste zadali funkcie správne, mali by sa kompilovať bez chýb. Ak ste zadali hodnoty pre x, y a polomer, mali by ste vidieť čierny kruh zobrazený na bielom pozadí.

Príznaky intolerancie glukózy

Judy Howell

V Júli 2024

Intolerancia glukózy je tiež známa ako porucha glukózovej tolerancie alebo prediabete. Jednotlivec v tomto tave má hladinu glukózy v krvi mimo bežných štandardov, ale nie...

Správne umiestnenie rukovätí

Judy Howell

V Júli 2024

Poloha rukoväte veľa závií od umietnenia krinky. Základné, ktoré ú niekoľko centimetrov od podlahy, nebudú mať úchytky na rovnakých mietach ako tie, k...

Získanie Popularity