Hur man gör en cirkel i OpenGL

Författare: Judy Howell
Skapelsedatum: 6 Juli 2021
Uppdatera Datum: 1 Juli 2024
Anonim
Hur man gör en cirkel i OpenGL - Elektronik
Hur man gör en cirkel i OpenGL - Elektronik

Innehåll

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

Steg 1

Gör ett grundprogram med en OpenGL-visningsport. Om du inte känner till den här processen finns en handledning på OpenGL-sidan.


Steg 2

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

Steg 3

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

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

Variablerna "x" och "y" kommer att användas för att definiera mitten av cirkeln i ditt fönster, medan "radien" fastställer cirkelns radie. Heltalet "num_lines" är antalet rader som används för att komponera cirkeln. Ju högre siffra desto mjukare kommer cirkeln att visas.

Steg 4

Lägg till följande konfigurationskod inuti tangenterna:

flottörvinkel GO int num_lines GO glColor3f (0.0, 0.0, 0.0) GO.

Variabeln "vinkel" innehåller vinkeln på de linjer som används för att konstruera cirkeln. Att anropa funktionen glColor3f () ställer in färgen på linjerna till svart, där serien av tre 0 motsvarar intensiteten för rött, grönt och blått på en skala från 0 till 1.


Steg 5

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

glBegin (GL_LINE_LOOP) GO

Detta berättar för OpenGL att alla efterföljande rader innebär att rita linjer. Specifikt kommer det att rita en "GL_LINE_LOOP", som är en serie anslutna linjer.

Steg 6

Ange följande kod för en for-loop efter glBegin () -anropet:

för (int i = 0; i <rad_nummer; i ++) {vinkel = i * 2 * M_PI / num_line; glVertex2f (x + (cos (vinkel) * radie), y + (sin (vinkel) * radie)); }

Denna slinga gör tre saker. För det itererar det enligt värdet på "num_lines", där num_lines är ett heltal som drar en linje i varje iteration och resulterar i en cirkel som består av raka linjer num_lines. För det andra beräknar den linjens vinkel relativt cirkelns centrum i radianer. "M_P" är en konstant definierad i matematik.h som representerar pi. Slutligen beräknar anropet till glVertex2f () koordinaterna för linjernas slutpunkter.


Steg 7

Efter loop-to anger du följande kodrad:

glEnd () GO

Detta kommer att berätta för OpenGL att du är klar med att rita linjerna.

Steg 8

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

Steg 9

Kompilera och kör ditt program. Om du angav funktionerna korrekt bör den kompileras utan fel. Om du angav värdena för x, y och radie, bör du se en svart cirkel visas på en vit bakgrund.

Subway sandwich konstnärsträning

Roger Morrison

Juli 2024

ubway "andwich-artiter" utbilda på jobbet och online. De viktigate förutättningarna för poitionen är gymnaiet och förmågan att tå, böja, gå ...

Pepper har använt i matlagning edan 5000 f.Kr. enligt American Cancer ociety. Paprika är en del av familjen olanaceae eller nattkugga. Jalapeno, habanero, chipotle och cayenne är nå...

Vi Rekommenderar Dig Att Läsa