Hur man gör en cirkel i OpenGL

Författare: Mark Sanchez
Skapelsedatum: 5 Januari 2021
Uppdatera Datum: 14 Maj 2024
Anonim
Hur man gör en cirkel i OpenGL - Artiklar
Hur man gör en cirkel i OpenGL - Artiklar

Innehåll

OpenGL eller Open Graphics Library är ett grafiskt API (Application Programming Interface) för att skriva 2D- och 3D-applikationer på olika språk och programmeringsplattformar. Den kan användas för att göra allt från enkla och primitiva objekt till komplexa 3D-scener. Open GL används ofta i datoriserad design, vetenskaplig visualisering, flygsimulering och videospel. Även om OpenGl inte har metoder för att rita en cirkel direkt, är det möjligt att konstruera en med en rad linjer. Du måste ha en grundläggande kunskap om OpenGL för att rita cirkeln.


vägbeskrivning

Det finns ingen direkt metod att skapa en cirkel i OpenGL, men det är fortfarande möjligt att komponera en med rätt kodrad (Creatas / Creatas / Getty Images)
  1. Gör ett grundläggande program med ett OpenGL-visningsfönster. Om du inte är bekant med den här processen finns det en handledning på OpenGL-sidan.

  2. Lägg till math.h.header-filen till ditt program genom att ange följande kod i början av programmet: #include . Detta ger dig de cos () och sin () (sinus och cosinus) funktioner som krävs för att beräkna cirkeln.

  3. Starta cirkelmetoden genom att lägga till följande kod innan du visar återuppringningsfunktionen:

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

    Variablerna "x" och "y" kommer att användas för att definiera cirkelns mitt i ditt fönster, medan "strålen" fastställer cirkelns radie. Heltalet "num_lines" är antalet linjer som används för att komponera cirkeln. Ju större detta nummer, desto smidare cirkeln kommer att se ut.


  4. Lägg till följande konfigurationskod inuti tangenterna:

    flytvinkel GO int num_lines GÅ glColor3f (0.0, 0.0, 0.0) GO.

    Variabeln "vinkel" kommer att innehålla vinkeln på linjerna som används för att konstruera cirkeln. Samtalet i funktionen glColor3f () sätter färgen på linjerna till svart, där serien på tre 0 motsvarar intensiteten av rött, grönt och blått på en skala från 0 till 1.

  5. Lägg till följande kod under funktionen glColor3f () från steg 4:

    glBegin (GL_LINE_LOOP) GO

    Detta berättar OpenGL om att några efterföljande rader involverar ritningslinjer. Specifikt kommer det att rita en "GL_LINE_LOOP", som är en serie anslutna linjer.

  6. Ange följande kod från a till loop efter glBegin () -samtalet:

    för (int i = 0; i <num_lines; i ++) {vinkel = i * 2 * M_PI / num_lines; glVertex2f (x + (cos (vinkel) * radie) och + (utan (vinkel) * radie)); }


    Denna slips gör tre saker. För det första itereras enligt värdet av "num_lines", där num_lines är ett heltal, ritar en rad vid varje iteration och resulterar i en cirkel bestående av num_lines av raka linjer. För det andra beräknar du vinkeln på linjerna i förhållande till cirkelns mitt i radianer. "M_P" är en konstant definierad i math.h som representerar pi. Slutligen beräknar glVertex2f () -samtalet koordinaterna för radernas ändpunkter.

  7. Efter loop-to, skriv följande kod:

    glEnd () GO

    Detta kommer att berätta för OpenGL att du är färdig med att skriva linjerna.

  8. För att rita cirkeln i en scen, lägg till ett samtal från metoden drawCircle () till programmets återuppringningsfunktion, som måste förberedas i steg 1. Ange värdena på x, y, radie och a_line, där x och y representerar en punkt I sin scen är radien cirkelns radie och num_lines är antalet linjer som utgör cirkeln. Återigen, om du inte känner till OpenGL och återuppringningsskärmen, se OpenGL-handledningen.

  9. Kompilera och kör ditt program. Om du har skrivit in funktionerna korrekt bör den kompilera utan fel. Om du har angett x-, y- och radienivåerna ska du se en svart cirkel som visas på en vit bakgrund.

Vad du behöver

  • Dator med OpenGL-support
  • Textredigerare och C-språkkompilatorverktyg eller C-utvecklingsmiljö