Innhold
OpenGL, eller Open Graphics Library, er et grafisk API (Application Programming Interface) for å skrive 2D- og 3D-applikasjoner på forskjellige programmeringsspråk og plattformer. Den kan brukes til å gjengi alt fra enkle, primitive gjenstander til komplekse 3D-scener. Open GL er mye brukt i datamaskindesign, vitenskapelig visualisering, flysimulering og videospill. Selv om OpenGl ikke har metoder for å tegne en sirkel direkte, er det mulig å bygge en ved hjelp av en serie linjer. Du må ha grunnleggende kunnskap om OpenGL for å tegne sirkelen.
Trinn 1
Lag et grunnleggende program med en OpenGL-visningsport. Hvis du ikke er kjent med denne prosessen, er det en veiledning på OpenGL-siden.
Steg 2
Legg til math.h.header-filen i programmet ditt ved å skrive inn følgende kode i begynnelsen av programmet: #include Start sirkelmetoden ved å legge til følgende kode før du viser tilbakeringingsfunksjonen: void drawCircle (GLint x, GLint y, GLint radius, int num_lines) {} Variablene "x" og "y" vil bli brukt til å definere sentrum av sirkelen i vinduet ditt, mens "radius" etablerer sirkelen. Heltallet "num_lines" er antall linjer som brukes til å komponere sirkelen. Jo høyere dette tallet er, desto glattere vil sirkelen vises. Legg til følgende konfigurasjonskode inne i tastene: flytevinkel GO int num_lines GO glColor3f (0.0, 0.0, 0.0) GO. Variabelen "vinkel" vil inneholde vinkelen på linjene som brukes til å konstruere sirkelen. Å ringe funksjonen glColor3f () setter fargen på linjene til svart, der serien på tre 0 tilsvarer intensiteten til rød, grønn og blå på en skala fra 0 til 1. Legg til følgende kode under funksjonen glColor3f () fra trinn 4: glBegin (GL_LINE_LOOP) GO Dette forteller OpenGL at eventuelle påfølgende linjer involverer tegning av linjer. Spesielt vil den tegne en "GL_LINE_LOOP", som er en serie med tilkoblede linjer. Skriv inn følgende kode for en for loop etter glBegin () -anropet: for (int i = 0; i <radnummer; i ++) {vinkel = i * 2 * M_PI / num_line; glVertex2f (x + (cos (vinkel) * radius), y + (sin (vinkel) * radius)); } Denne løkken gjør tre ting. Først itererer den i henhold til verdien av "num_lines", der num_lines er et heltall, som tegner en linje i hver iterasjon og resulterer i en sirkel sammensatt av rette linjer num_lines. For det andre beregner den linjens vinkel i forhold til sentrum av sirkelen i radianer. "M_P" er en konstant definert i matematikk.h som representerer pi. Til slutt beregner anropet til glVertex2f () koordinatene til linjens sluttpunkter. Etter loop-to, skriv inn følgende kodelinje: glEnd () GO Dette vil fortelle OpenGL at du er ferdig med å tegne linjene. For å tegne sirkelen i en scene, legg til et anrop fra drawCircle () -metoden til programmets tilbakeringingsskjermfunksjon, som må utarbeides i trinn 1. Spesifiser verdiene for x, y, radius og num_lines, der x og y representerer et punkt i scenen din er radius radiusen til sirkelen, og num_lines er antall linjer som utgjør sirkelen. Igjen, hvis du ikke er kjent med OpenGL og tilbakeringingsskjermen, se OpenGL-opplæringen. Kompilere og kjør programmet. Hvis du skrev inn funksjonene riktig, skulle den kompileres uten feil. Hvis du spesifiserte verdiene for x, y og radius, bør du se en svart sirkel vises på en hvit bakgrunn.Trinn 3
Trinn 4
Trinn 5
Trinn 6
Trinn 7
Trinn 8
Trinn 9