Sådan laver du en cirkel i OpenGL

Forfatter: Florence Bailey
Oprettelsesdato: 23 Marts 2021
Opdateringsdato: 15 November 2024
Anonim
Sådan laver du en cirkel i OpenGL - Artikler
Sådan laver du en cirkel i OpenGL - Artikler

Indhold

OpenGL eller Open Graphics Library er et grafisk API (Application Programming Interface) til skrivning af 2D- og 3D-applikationer på forskellige sprog og programmeringsplatforme. Det kan bruges til at gøre alt fra enkle og primitive objekter til komplekse 3D scener. Open GL bruges i vid udstrækning i computeriseret design, videnskabelig visualisering, flysimulering og videospil. Selvom OpenGl ikke har metoder til at tegne en cirkel direkte, er det muligt at konstruere en ved hjælp af en række linjer. Du skal have en grundlæggende viden om OpenGL for at tegne cirklen.


retninger

Der er ingen direkte metode til at lave en cirkel i OpenGL, men det er stadig muligt at komponere en med de rigtige kodeord (Creatas / Creatas / Getty Images)
  1. Lav et grundlæggende program med et OpenGL viewport-vindue. Hvis du ikke er bekendt med denne proces, er der en vejledning på OpenGL-siden.

  2. Tilføj filen math.h.header til dit program ved at indtaste følgende kode i begyndelsen af ​​programmet: #include . Dette vil give dig de cos () og sin () (sinus og cosinus) funktioner, der er nødvendige for at beregne cirklen.

  3. Start cirkelmetoden ved at tilføje følgende kode før tilbagekaldsfunktionen vises:

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

    Variablerne "x" og "y" vil blive brugt til at definere midten af ​​cirklen i dit vindue, mens "strålen" etablerer cirkelens radius. Heltallet "num_lines" er antallet af linjer, der bruges til at komponere cirklen. Jo større dette tal, jo glattere cirkel vil se ud.


  4. Tilføj følgende konfigurationskode inde i tasterne:

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

    Variabel "vinkel" vil indeholde vinklen på de linjer, der bruges til at konstruere cirklen. Opkaldet til funktionen glColor3f () indstiller linjens farve til sort, hvor rækken af ​​tre 0 svarer til intensiteten af ​​rød, grøn og blå på en skala fra 0 til 1.

  5. Tilføj følgende kode under funktionen glColor3f () fra trin 4:

    glBegin (GL_LINE_LOOP) GO

    Dette fortæller OpenGL, at eventuelle efterfølgende linjer involverer tegningslinjer. Specielt vil den tegne en "GL_LINE_LOOP", som er en serie af tilsluttede linjer.

  6. Indtast følgende kode fra en til sløjfe efter glBegin () -opkaldet:

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


    Denne slips gør tre ting. For det første itererer det efter værdien af ​​"num_lines", hvor num_lines er et helt tal, tegner en linje ved hver iteration og resulterer i en cirkel sammensat af num_lines af lige linjer. For det andet beregner vinklen af ​​linjerne i forhold til midten af ​​cirklen i radianer. "M_P" er en konstant defineret i math.h, der repræsenterer pi. Endelig beregner glVertex2f () -opkald koordinaterne for endepunkterne i rækkerne.

  7. Efter loop-to, indtast følgende linie kode:

    glEnd () GO

    Dette vil fortælle OpenGL, at du er færdig med at tegne linjerne.

  8. For at tegne cirklen i en scene, tilføj et opkald fra metoden drawCircle () til programmets tilbagekaldsfunktion, som skal udarbejdes i trin 1. Angiv værdierne for x, y, radius og a_line, hvor x og y repræsenterer et punkt i sin scene er radius cirkelens radius, og num_lines er antallet af linjer, der udgør cirklen. Igen, hvis du ikke er bekendt med OpenGL og tilbagekaldsdisplayet, skal du se OpenGL-vejledningen.

  9. Kompilere og kør dit program. Hvis du har indtastet funktionerne korrekt, skal den kompilere uden fejl. Hvis du har angivet x-, y- og radiusværdierne, skal du se en sort cirkel, der vises på en hvid baggrund.

Hvad du har brug for

  • Computer med OpenGL-support
  • Tekstredigerer og C-sprogkompilatorværktøjer eller C-udviklingsmiljø