Kako prikazati krug u OpenGL-u

Autor: Eugene Taylor
Datum Stvaranja: 14 Kolovoz 2021
Datum Ažuriranja: 1 Srpanj 2024
Anonim
Morali smo na operaciju 👨‍⚕️| Ženski Svijet 🦋
Video: Morali smo na operaciju 👨‍⚕️| Ženski Svijet 🦋

Sadržaj

OpenGL ili Open Graphics Library je grafički API (Sučelje za programiranje aplikacija) za pisanje 2D i 3D aplikacija na različitim programskim jezicima i platformama. Može se koristiti za prikazivanje bilo čega, od jednostavnih, primitivnih objekata do složenih 3D scena. Open GL se široko koristi u računalnom dizajnu, znanstvenoj vizualizaciji, simulaciji leta i video igrama. Iako OpenGl nema metode za izravno crtanje kruga, moguće ga je izgraditi pomoću niza linija. Za crtanje kruga trebat ćete imati osnovno znanje OpenGL-a.

Korak 1

Napravite osnovni program s prikazom OpenGL. Ako niste upoznati s ovim postupkom, na stranici OpenGL nalazi se vodič.


Korak 2

Dodajte datoteku math.h.header u svoj program unošenjem sljedećeg koda na početku programa: #include . Ovo će vam pružiti funkcije cos () i sin () (sinus i kosinus) potrebne za izračunavanje kruga.

3. korak

Započnite metodu kruga dodavanjem sljedećeg koda prije prikazivanja funkcije povratnog poziva:

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

Varijable "x" i "y" služit će za definiranje središta kruga u vašem prozoru, dok "radijus" utvrđuje radijus kruga. Cijeli broj "num_lines" je broj linija korištenih za sastavljanje kruga. Što je veći ovaj broj, krug će se pojaviti glađi.

4. korak

U ključeve dodajte sljedeći konfiguracijski kod:

plutajući kut GO int num_lines GO glColor3f (0.0, 0.0, 0.0) GO.

Varijabla "kut" sadržavat će kut linija korištenih za konstrukciju kruga. Pozivanjem funkcije glColor3f () boja linija se postavlja na crnu, pri čemu niz od tri 0 odgovara intenzitetu crvene, zelene i plave boje na skali od 0 do 1.


Korak 5

Dodajte sljedeći kod ispod funkcije glColor3f () iz koraka 4:

glBegin (GL_LINE_LOOP) IDI

To OpenGL-u govori da sve naredne crte uključuju crtanje linija. Točnije, nacrtat će "GL_LINE_LOOP", što je niz povezanih linija.

Korak 6

Unesite sljedeći kod za petlju for nakon poziva glBegin ():

za (int i = 0; i <broj_reda; i ++) {kut = i * 2 * M_PI / num_line; glVertex2f (x + (cos (kut) * polumjer), y + (sin (kut) * polumjer)); }

Ova petlja čini tri stvari. Prvo se ponavlja prema vrijednosti "num_lines", gdje je num_lines cijeli broj, crtajući crtu u svakoj iteraciji i rezultirajući krugom koji se sastoji od ravnih linija num_lines. Drugo, izračunava kut linija u odnosu na središte kruga u radijanima. "M_P" je konstanta definirana u math.h koja predstavlja pi. Konačno, poziv na glVertex2f () izračunava koordinate krajnjih točaka linija.


7. korak

Nakon petlje unesite sljedeći redak koda:

glEnd () IDI

To će OpenGL-u reći da ste završili s crtanjem linija.

Korak 8

Da biste nacrtali krug u sceni, dodajte poziv iz metode drawCircle () funkciji prikaza povratnog poziva programa, koja mora biti pripremljena u koraku 1. Navedite vrijednosti x, y, radijus i num_lines, gdje x i y predstavljaju točku u vašoj sceni radijus je radijus kruga, a num_lines broj linija koje čine krug. Opet, ako niste upoznati s OpenGL-om i prikazom povratnog poziva, pogledajte vodič za OpenGL.

Korak 9

Sastavite i pokrenite svoj program. Ako ste ispravno unijeli funkcije, trebala bi se kompajlirati bez pogrešaka. Ako ste naveli vrijednosti za x, y i radijus, trebali biste vidjeti crni krug prikazan na bijeloj pozadini.

Život u afričkoj savani

Morris Wright

Srpanj 2024

Afrička avana tropki je travnjak koji pokriva gotovo čitav kontinent. To je najveći travnjak na vijetu. Protrana je i promjenjiva, a njezini tanovnici moraju prilagoditi voj životni til kako bi preživ...

Kako ukloniti sluz s dna bazena

Morris Wright

Srpanj 2024

Prljavi pokrivač bazena ili blatnjavi betonki pod mogu kupanje učiniti neugodnim. Mulj je četo uzrokovan ratom algi i bakterija, koje vodu čine nezdravom za kupanje. Čišćenje luzi na dnu bazena važan ...

Naša Preporuka