Kuidas OpenGL-is ringi renderdada

Autor: Eugene Taylor
Loomise Kuupäev: 11 August 2021
Värskenduse Kuupäev: 14 November 2024
Anonim
Kuidas OpenGL-is ringi renderdada - Elektroonika
Kuidas OpenGL-is ringi renderdada - Elektroonika

Sisu

OpenGL ehk Open Graphics Library on graafiline API (Application Programming Interface) 2D- ja 3D-rakenduste kirjutamiseks erinevates programmeerimiskeeltes ja -platvormidel. Selle abil saab renderdada kõike alates lihtsatest, primitiivsetest objektidest kuni keeruliste 3D-stseenideni. Open GL-i kasutatakse laialdaselt arvutikujunduses, teaduslikus visualiseerimises, lennusimulatsioonis ja videomängudes. Kuigi OpenGl-l pole meetodeid ringi otse joonistamiseks, on see võimalik ehitada reade abil. Ringi joonistamiseks peavad teil olema algteadmised OpenGL-ist.

Samm 1

Koostage OpenGL-i vaateavaga põhiprogramm. Kui te pole selle protsessiga tuttav, on OpenGL-i lehel õpetus.


2. samm

Lisage oma programmi Math.h.header-fail, sisestades programmi alguses järgmise koodi: #include . See annab teile ringi arvutamiseks vajalikud funktsioonid cos () ja sin () (siinus ja koosinus).

3. samm

Alustage ringimeetodit, lisades enne tagasihelistusfunktsiooni kuvamist järgmise koodi:

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

Muutujaid "x" ja "y" kasutatakse teie akna ringi keskpunkti määratlemiseks, samas kui "raadius" määrab ringi raadiuse. Täisarv "num_lines" on ringi koostamiseks kasutatud ridade arv. Mida suurem on see arv, seda sujuvamalt ilmub ring.

4. samm

Lisage klahvide sisse järgmine konfiguratsioonikood:

ujuknurk GO int num_lines GO glColor3f (0.0, 0.0, 0.0) GO.

Muutuja "nurk" sisaldab joone ehitamiseks kasutatud joonte nurka. Funktsiooni glColor3f () kutsumine seab joonte värvi mustaks, kus kolme 0 jada vastab punase, rohelise ja sinise intensiivsusele skaalal 0 kuni 1.


5. samm

Lisage 4. koodist funktsiooni glColor3f () alla järgmine kood:

glBegin (GL_LINE_LOOP) Minge

See ütleb OpenGL-ile, et kõik järgnevad jooned hõlmavad joonte joonistamist. Täpsemalt joonistab see "GL_LINE_LOOP", mis on ühendatud liinide rida.

6. samm

Pärast glBegin () kõnet sisestage for for loop järgmine kood:

for (int i = 0; i <rea_number; i ++) {nurk = i * 2 * M_PI / num_line; glVertex2f (x + (cos (nurk) * raadius), y + (sin (nurk) * raadius)); }

See silmus teeb kolme asja. Esiteks itereeritakse vastavalt "num_lines" väärtusele, kus num_lines on täisarv, tõmmates igas iteratsioonis joone ja tulemuseks on sirgjoontest num_lines koosnev ring. Teiseks arvutab see radiaanides sirgete nurga ringi keskpunkti suhtes. "M_P" on matemaatikas.h määratletud konstant, mis tähistab pi-d. Lõpuks arvutab kõne glVertex2f () välja sirgete lõpp-punktide koordinaadid.


7. samm

Pärast tsüklit sisestage järgmine koodirida:

glEnd () GO

See ütleb OpenGL-ile, et olete joonte joonistamise lõpetanud.

8. samm

Stseenis ringi joonistamiseks lisage kutse meetodilt drawCircle () programmi tagasihelistamise kuvamise funktsioonile, mis tuleb ette valmistada etapis 1. Määrake x, y, raadiuse ja num_lines väärtused, kus x ja y tähistavad punkti teie stseenis on raadius ringi raadius ja num_lines on ringi moodustavate ridade arv. Jällegi, kui te pole veel OpenGL-i ja tagasihelistamise kuvaga tuttav, vaadake OpenGL-i õpetust.

9. samm

Koostage ja käivitage oma programm. Kui sisestasite funktsioonid õigesti, peaks see kompileerima ilma vigadeta. Kui määrasite x, y ja raadiuse väärtused, peaksite valgel taustal kuvama musta ringi.

Kuidas teha betoonist põrandaliistu

Judy Howell

November 2024

Betoonit põrandalaua kaevamine on töömahuka, eega on kõige parem hankida kak või kolm õpra projekti abitama. Betoon kuivab kiireti ja pärat valamit tuleb ee umbe tun...

Mida inimesed Saksamaal kannavad?

Judy Howell

November 2024

aklaed ei kanna terve päeva jookul traditioonilii "Lederhoen" tüüpi nahat lühikei püke ega tüüpilii talupoegade pluue "Dirndl". Iegi Lõuna-a...

Huvitav Saidil