Vsebina
OpenGL ali Open Graphics Library je grafični API (Application Programming Interface) za pisanje 2D in 3D aplikacij v različnih jezikih in programskih platformah. Uporablja se lahko za prikazovanje nič od preprostih in primitivnih objektov do zapletenih 3D prizorov. Open GL se široko uporablja v računalniškem oblikovanju, znanstveni vizualizaciji, simulaciji letenja in video igrah. Tudi če OpenGl nima metod za neposredno risanje kroga, ga je možno zgraditi z zaporedjem vrstic. Za risanje kroga boste morali imeti osnovno znanje OpenGL.
Navodila
Ne obstaja neposredna metoda za izdelavo kroga v OpenGL, vendar je še vedno mogoče sestaviti eno z desnimi vrsticami kode (Creatas / Creatas / Getty Images)-
Naredite osnovni program z oknom za ogled okna OpenGL. Če tega postopka ne poznate, je na strani OpenGL na voljo vadnica.
-
Dodajte datoteko math.h.header v program tako, da na začetku programa vnesete naslednjo kodo: #include
. S tem boste dobili funkcije cos () in sin () (sinus in kosinus), ki sta potrebni za izračun kroga. -
Zaženite metodo kroga tako, da pred prikazom funkcije povratnega klica dodate naslednjo kodo:
void drawCircle (GLint x, GLint y, GLint ray, int num_lines) {}
Spremenljivke "x" in "y" bodo uporabljene za določitev središča kroga v vašem oknu, medtem ko "žarek" vzpostavi polmer kroga. Celo število "num_lines" je število vrstic, ki se uporabljajo za sestavo kroga. Večja kot je številka, krog bo bolj gladka.
-
V ključe dodajte naslednjo konfiguracijsko kodo:
float ugao GO int num_lines GO glColor3f (0.0, 0.0, 0.0) GO.
Spremenljivka "angle" bo vsebovala kot linij, uporabljenih za konstruiranje kroga. Klic funkcije glColor3f () nastavi barvo linij na črno, kjer serija treh 0 ustreza intenzivnosti rdeče, zelene in modre barve na lestvici od 0 do 1.
-
Dodajte naslednjo kodo pod funkcijo glColor3f () iz koraka 4:
glBegin (GL_LINE_LOOP) GO
To pove OpenGL, da vse nadaljnje vrstice vključujejo risanje. Natančneje, narisal bo "GL_LINE_LOOP", ki je niz povezanih linij.
-
Vnesite naslednjo kodo iz zanke po klicu glBegin ():
za (int i = 0; i <num_lines; i ++) {angle = i * 2 * M_PI / num_lines; glVertex2f (x + (cos (kot) * polmer) in + (brez (kota) * polmera)); }
Ta kravata naredi tri stvari. Najprej se ponovi v skladu z vrednostjo "num_lines", kjer je num_lines celo število, ki na vsaki iteraciji nariše črto, kar povzroči krog, sestavljen iz številnih linij ravnih črt. Drugič, izračunajte kot linij glede na središče kroga v radianih. "M_P" je konstanta, definirana v math.h, ki predstavlja pi. Nazadnje klic glVertex2f () izračuna koordinate končnih točk vrstic.
-
Po zanki do, vnesite naslednjo vrstico kode:
glEnd () GO
Tako bo OpenGL povedal, da ste končali risanje linij.
-
Za risanje kroga v sceni dodajte klic iz metode drawCircle () funkciji povratnega klica programa, ki jo morate pripraviti v 1. koraku. Določite vrednosti x, y, polmer in a_line, kjer x in y predstavljata točko v njegovem prizoru je polmer radij kroga, num_lines pa število vrstic, ki sestavljajo krog. Še enkrat, če niste seznanjeni z OpenGL-om in zaslonom za povratni klic, si oglejte navodila za OpenGL.
-
Prevedite in zaženite program. Če ste pravilno vnesli funkcije, se mora prevesti brez napak. Če ste določili vrednosti x, y in polmera, bi morali videti črni krog, prikazan na belem ozadju.
Kaj potrebujete
- Računalnik s podporo za OpenGL
- Urejevalnik besedil in orodja za prevajalce C jezika ali razvojno okolje C