Hvordan lage en sirkel i OpenGL

Forfatter: Florence Bailey
Opprettelsesdato: 28 Mars 2021
Oppdater Dato: 25 November 2024
Anonim
Circular Saw Cross Miter Cutting Station - DIY - How to
Video: Circular Saw Cross Miter Cutting Station - DIY - How to

Innhold

OpenGL, eller Open Graphics Library, er et grafisk API (Application Programming Interface) for å skrive 2D- og 3D-programmer på forskjellige språk og programmeringsplattformer. Den kan brukes til å gjengi alt fra enkle og primitive objekter til komplekse 3D-scener. Den åpne GL er mye brukt i datastyrt design, vitenskapelig visualisering, flysimulering og videospill. Selv om OpenGl ikke har metoder for å tegne en sirkel direkte, er det mulig å konstruere en ved hjelp av en serie linjer. Du må ha grunnleggende kunnskap om OpenGL for å tegne sirkelen.


retninger

Det er ingen direkte metode for å lage en sirkel i OpenGL, men det er fortsatt mulig å komponere en med de riktige kodelinjene (Creatas / Creatas / Getty Images)
  1. Lag et grunnleggende program med et OpenGL-visningsvindu. Hvis du ikke er kjent med denne prosessen, er det en veiledning på OpenGL-siden.

  2. Legg til math.h.header-filen til programmet ditt ved å skrive inn følgende kode i begynnelsen av programmet: #include . Dette vil gi deg cos () og sin () (sinus og cosinus) funksjoner som kreves for å beregne sirkelen.

  3. Start sirkelmetoden ved å legge til følgende kode før du viser tilbakeringingsfunksjonen:

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

    Variablene "x" og "y" vil bli brukt til å definere sirkelens senter i vinduet, mens "strålen" etablerer radiusen til sirkelen. Heltallet "num_lines" er antall linjer som brukes til å komponere sirkelen. Jo større dette tallet, jo jevnere sirkelen vil se ut.


  4. 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. Kallet til glColor3f () -funksjonen setter fargen på linjene til svart, hvor serien på tre 0 tilsvarer intensiteten av rød, grønn og blå på en skala fra 0 til 1.

  5. Legg til følgende kode under glColor3f () -funksjonen fra trinn 4:

    glBegin (GL_LINE_LOOP) GO

    Dette forteller OpenGL at noen etterfølgende linjer involverer tegningslinjer. Spesielt vil det tegne en "GL_LINE_LOOP", som er en serie med tilkoblede linjer.

  6. Skriv inn følgende kode fra a til sløyfe etter glBegin () -samtalen:

    for (int i = 0; i <num_lines; i ++) {vinkel = i * 2 * M_PI / num_lines; glVertex2f (x + (cos (vinkel) * radius), og + (uten (vinkel) * radius)); }


    Dette slipset gjør tre ting. Først iter det etter verdien av "num_lines", hvor num_lines er et heltall, tegner en linje ved hver iterasjon og resulterer i en sirkel som består av num_lines av rette linjer. For det andre beregner vinkelen av linjene i forhold til sirkelens senter i radianer. "M_P" er en konstant definert i math.h som representerer pi. Til slutt beregner glVertex2f () -samtalen koordinatene til endepunktene til radene.

  7. Etter loop-to, skriv inn følgende linje med kode:

    glEnd () GO

    Dette vil fortelle OpenGL at du er ferdig med å tegne linjene.

  8. For å tegne sirkelen i en scene, legg til et anrop fra drawCircle () -metoden til programmets tilbakeringingsfunksjon, som må utarbeides i trinn 1. Angi verdiene for x, y, radius og a_line, hvor x og y representerer et punkt I sin scene er radius radius av sirkelen, og num_lines er antall linjer som utgjør sirkelen. Igjen, hvis du ikke er kjent med OpenGL og tilbakeringingsdisplayet, se OpenGL-veiledningen.

  9. Kompilere og kjøre programmet. Hvis du har lagt inn funksjonene riktig, bør den kompilere uten feil. Hvis du har angitt x-, y- og radiusverdiene, bør du se en svart sirkel som vises på en hvit bakgrunn.

Hva du trenger

  • Datamaskin med OpenGL-støtte
  • Tekstredigerer og C-språkkompilatorverktøy eller C-utviklingsmiljø