Hoe een cirkel in OpenGL rendert

Schrijver: Florence Bailey
Datum Van Creatie: 23 Maart 2021
Updatedatum: 17 Kunnen 2024
Anonim
Hoe uw afbeeldingen te DENOISEEN in Blender 2.80 - Beginnershandleiding
Video: Hoe uw afbeeldingen te DENOISEEN in Blender 2.80 - Beginnershandleiding

Inhoud

OpenGL, of Open Graphics Library, is een grafische API (Application Programming Interface) voor het schrijven van 2D- en 3D-applicaties in verschillende talen en programmeerplatforms. Het kan worden gebruikt om alles van eenvoudige en primitieve objecten weer te geven tot complexe 3D-scènes. De Open GL wordt veel gebruikt in geautomatiseerd ontwerp, wetenschappelijke visualisatie, vluchtsimulatie en videogames. Zelfs als OpenGl geen methoden heeft om rechtstreeks een cirkel te tekenen, is het mogelijk om er een te construeren met behulp van een reeks lijnen. Je moet een basiskennis van OpenGL hebben om de cirkel te tekenen.


routebeschrijving

Er is geen directe methode om een ​​cirkel in OpenGL te maken, maar het is nog steeds mogelijk om een ​​cirkel met de juiste coderegels samen te stellen (Creatas / Creatas / Getty Images)
  1. Maak een basisprogramma met een OpenGL viewport-venster. Als u niet bekend bent met dit proces, is er een zelfstudie op de OpenGL-pagina.

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

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

    void drawCircle (GLint x, GLint y, GLint ray, 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 is gebruikt om de cirkel samen te stellen. Hoe groter dit getal, hoe gladder de cirkel eruit zal zien.


  4. Voeg de volgende configuratiecode toe aan de binnenkant van de toetsen:

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

    De variabele "hoek" bevat de hoek van de lijnen die zijn gebruikt om de cirkel te construeren. De aanroep van de functie glColor3f () stelt de kleur van de lijnen in op zwart, waarbij de reeks van drie 0 overeenkomt met de intensiteit van rood, groen en blauw op een schaal van 0 tot 1.

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

    glBegin (GL_LINE_LOOP) GO

    Dit vertelt OpenGL dat bij volgende regels tekenlijnen moeten worden getrokken. In het bijzonder tekent het een "GL_LINE_LOOP", wat een reeks verbonden lijnen is.

  6. Voer de volgende code in van a tot lus na de aanroep glBegin ():

    for (int i = 0; i <num_lines; i ++) {angle = i * 2 * M_PI / num_lines; glVertex2f (x + (cos (hoek) * straal) en + (zonder (hoek) * straal)); }


    Deze stropdas doet drie dingen. Ten eerste itereert het volgens de waarde van "num_lines", waarbij num_lines een geheel getal is en een lijn trekt bij elke iteratie en resulteert in een cirkel die bestaat uit num_lines van rechte lijnen. Ten tweede, bereken 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 voorstelt. Ten slotte berekent de aanroep glVertex2f () de coördinaten van de eindpunten van de rijen.

  7. Voer na de lus naar de volgende regel code in:

    glEnd () GO

    Dit zal OpenGL vertellen dat je klaar bent met het tekenen van de regels.

  8. Als u de cirkel in een scène wilt tekenen, voegt u een aanroep van de methode drawCircle () toe aan de callback-functie van het programma, die u in stap 1 moet voorbereiden. Geef de waarden x, y, radius en a_line op, waarbij x en y een punt vertegenwoordigen in de scène is de 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 callback-weergave, raadpleegt u de OpenGL-zelfstudie.

  9. Compileer en voer je programma uit. Als u de functies correct hebt ingevoerd, moet deze zonder fouten worden gecompileerd. Als u de waarden x, y en radius hebt opgegeven, ziet u een zwarte cirkel op een witte achtergrond.

Wat je nodig hebt

  • Computer met OpenGL-ondersteuning
  • Tekstverwerker en C taal compiler tools of C ontwikkelomgeving