Cum se redă un cerc în OpenGL

Autor: Eugene Taylor
Data Creației: 8 August 2021
Data Actualizării: 13 Noiembrie 2024
Anonim
Cum se redă un cerc în OpenGL - Electronică
Cum se redă un cerc în OpenGL - Electronică

Conţinut

OpenGL sau Open Graphics Library este o API grafică (Interfață de programare a aplicațiilor) pentru scrierea aplicațiilor 2D și 3D în diverse limbaje și platforme de programare. Poate fi folosit pentru a reda orice, de la obiecte simple, primitive la scene 3D complexe. Open GL este utilizat pe scară largă în proiectarea computerelor, vizualizarea științifică, simularea zborului și jocurile video. Chiar dacă OpenGl nu are metode pentru desenarea unui cerc direct, este posibil să se construiască unul folosind o serie de linii. Va trebui să aveți cunoștințe de bază despre OpenGL pentru a desena cercul.

Pasul 1

Creați un program de bază cu o fereastră de vizualizare OpenGL. Dacă nu sunteți familiarizați cu acest proces, există un tutorial pe pagina OpenGL.


Pasul 2

Adăugați fișierul math.h.header la programul dvs. introducând următorul cod la începutul programului: #include . Acest lucru vă va oferi funcțiile cos () și sin () (sinus și cosinus) necesare pentru calcularea cercului.

Pasul 3

Porniți metoda cercului adăugând următorul cod înainte de a afișa funcția de apel invers:

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

Variabilele „x” și „y” vor fi folosite pentru a defini centrul cercului din fereastra dvs., în timp ce „raza” stabilește raza cercului. Numărul întreg "num_lines" este numărul de linii utilizate pentru a compune cercul. Cu cât acest număr este mai mare, cu atât cercul va apărea mai lin.

Pasul 4

Adăugați următorul cod de configurare în interiorul tastelor:

float angle GO int num_lines GO glColor3f (0.0, 0.0, 0.0) GO.

Variabila „unghi” va conține unghiul liniilor utilizate pentru a construi cercul. Apelarea funcției glColor3f () setează culoarea liniilor la negru, unde seria celor trei 0 corespunde intensității roșu, verde și albastru pe o scară de la 0 la 1.


Pasul 5

Adăugați următorul cod sub funcția glColor3f () de la pasul 4:

glBegin (GL_LINE_LOOP) GO

Acest lucru spune OpenGL că orice linie ulterioară implică desenarea liniilor. Mai exact, va desena un „GL_LINE_LOOP”, care este o serie de linii conectate.

Pasul 6

Introduceți următorul cod pentru o buclă for după apelul glBegin ():

for (int i = 0; i <number_ row; i ++) {angle = i * 2 * M_PI / num_line; glVertex2f (x + (cos (unghi) * rază), y + (sin (unghi) * rază)); }

Această buclă face trei lucruri. În primul rând, iterează în funcție de valoarea „num_lines”, unde num_lines este un număr întreg, trasând o linie în fiecare iterație și rezultând un cerc compus din linii drepte num_lines. În al doilea rând, calculează unghiul liniilor în raport cu centrul cercului în radiani. „M_P” este o constantă definită în math.h reprezentând pi. În cele din urmă, apelul către glVertex2f () calculează coordonatele punctelor finale ale liniilor.


Pasul 7

După loop-to, introduceți următoarea linie de cod:

glEnd () GO

Acest lucru va spune OpenGL că ați terminat de trasat liniile.

Pasul 8

Pentru a desena cercul într-o scenă, adăugați un apel din metoda drawCircle () la funcția de afișare a apelului de apel al programului, care trebuie pregătită la pasul 1. Specificați valorile x, y, raza și num_lines, unde x și y reprezintă un punct în scena dvs., raza este raza cercului, iar num_lines este numărul de linii care alcătuiesc cercul. Din nou, dacă nu sunteți familiarizați cu OpenGL și cu afișajul de apel invers, consultați tutorialul OpenGL.

Pasul 9

Compilați și rulați programul. Dacă ați introdus corect funcțiile, acesta ar trebui să fie compilat fără erori. Dacă ați specificat valorile pentru x, y și rază, ar trebui să vedeți un cerc negru afișat pe un fundal alb.

De ce urșii polari au blană albă?

Eugene Taylor

Noiembrie 2024

Urșii polari (Uru maritimu) au dezvoltat un trat tranparent în loc de negru au maro pentru camuflaj. Deși părul arată alb, ete de fapt incolor. La caa urșilor polari din Cercul polar polar, cea m...

Buionul ete o deformare a degetului mare, cauzată în principal de purtarea unor pantofi prea trânși au care nu e potrivec perfect. Deși ete extrem de durero, uneori problema poate fi corecta...

Selectați Administrare