Hoe maak je een cirkel weer in OpenGL

Schrijver: Eugene Taylor
Datum Van Creatie: 10 Augustus 2021
Updatedatum: 14 November 2024
Anonim
Bekkenbodem hoe traint u uw bekkenbodem fysiotherapeuten
Video: Bekkenbodem hoe traint u uw bekkenbodem fysiotherapeuten

Inhoud

OpenGL, of Open Graphics Library, is een grafische API (Application Programming Interface) voor het schrijven van 2D- en 3D-applicaties in verschillende programmeertalen en platforms. Het kan worden gebruikt om alles te renderen, van eenvoudige, primitieve objecten tot complexe 3D-scènes. Open GL wordt veel gebruikt in computerontwerp, wetenschappelijke visualisatie, vluchtsimulatie en videogames. Hoewel OpenGl geen methoden heeft om direct een cirkel te tekenen, is het mogelijk om er een te bouwen met een reeks lijnen. U moet een basiskennis van OpenGL hebben om de cirkel te tekenen.

Stap 1

Maak een basisprogramma met een OpenGL-viewport. Als u niet bekend bent met dit proces, is er een tutorial op de OpenGL-pagina.


Stap 2

Voeg het math.h.header-bestand toe aan je programma door de volgende code in te voeren aan het begin van het programma: #include . Dit geeft je de cos () en sin () (sinus en cosinus) functies die nodig zijn om de cirkel te berekenen.

Stap 3

Start de cirkelmethode door de volgende code toe te voegen voordat de callback-functie wordt weergegeven:

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

De variabelen "x" en "y" worden gebruikt om het middelpunt van de cirkel in uw venster te definiëren, terwijl de "straal" de straal van de cirkel bepaalt. Het gehele getal "num_lines" is het aantal regels dat wordt gebruikt om de cirkel samen te stellen. Hoe hoger dit nummer, hoe gladder de cirkel zal verschijnen.

Stap 4

Voeg de volgende configuratiecode toe aan de toetsen:

zwevende hoek GO int num_lines GO glColor3f (0,0, 0,0, 0,0) GO.

De variabele "hoek" bevat de hoek van de lijnen die worden gebruikt om de cirkel te construeren. Door de functie glColor3f () aan te roepen, wordt de kleur van de lijnen op zwart gezet, waarbij de reeks van drie 0 overeenkomt met de intensiteit van rood, groen en blauw op een schaal van 0 tot 1.


Stap 5

Voeg de volgende code toe onder de functie glColor3f () uit stap 4:

glBegin (GL_LINE_LOOP) GO

Dit vertelt OpenGL dat alle volgende lijnen tekenlijnen omvatten. In het bijzonder zal het een "GL_LINE_LOOP" tekenen, wat een reeks verbonden lijnen is.

Stap 6

Voer de volgende code in voor een for-lus na de aanroep van glBegin ():

for (int i = 0; i <row_number; i ++) {angle = i * 2 * M_PI / num_line; glVertex2f (x + (cos (hoek) * straal), y + (sin (hoek) * straal)); }

Deze lus doet drie dingen. Ten eerste itereert het volgens de waarde van "num_lines", waarbij num_lines een geheel getal is, een lijn trekt in elke iteratie en resulteert in een cirkel die is samengesteld uit rechte lijnen num_lines. Ten tweede berekent het de hoek van de lijnen ten opzichte van het middelpunt van de cirkel in radialen. "M_P" is een constante gedefinieerd in math.h die pi vertegenwoordigt. Ten slotte berekent de aanroep van glVertex2f () de coördinaten van de eindpunten van de lijnen.


Stap 7

Voer na de loop-to de volgende regel code in:

glEnd () GO

Dit zal OpenGL vertellen dat u klaar bent met het tekenen van de lijnen.

Stap 8

Om de cirkel in een scène te tekenen, voegt u een aanroep van de drawCircle () - methode toe aan de callback-weergavefunctie van het programma, die moet worden voorbereid in stap 1. Specificeer de waarden van x, y, radius en num_lines, waarbij x en y een punt vertegenwoordigen in je scène is straal de straal van de cirkel en is num_lines het aantal lijnen waaruit de cirkel bestaat. Nogmaals, als u niet bekend bent met OpenGL en de terugbelweergave, bekijk dan de OpenGL-zelfstudie.

Stap 9

Compileer en voer uw programma uit. Als u de functies correct heeft ingevoerd, zou het zonder fouten moeten compileren. Als je de waarden voor x, y en straal hebt gespecificeerd, zou je een zwarte cirkel op een witte achtergrond moeten zien.

Klantenervice i heel gebruikelijk, vooral in grote bedrijven die het aantal klanten elke dag vergroten. Weten hoe u met klachten moet omgaan, houdt niet alleen uw betaande klanten in tand, maar genere...

Uw Ford pick-uptruck heeft regelmatig radiatorkoelvloeitof nodig om zijn pretatie en levenduur van de motor te behouden. Deze vloeitof i ontworpen om de motortemperatuur binnen een bepaald bereik te h...

Fascinerende Artikelen