Dator > hur man gör en cirkel i OpenGL

  • hur man gör en cirkel i OpenGL


  • OpenGL eller Open Graphics Library , är en datorgrafik API ( Application Programming Interface ) för att skriva 2D -och 3D datorgrafik program över programmeringsspråk och plattformar . Det kan användas för att göra allt från enkla , primitiva objekt till komplexa 3D- scener . OpenGL används ofta i professionella datorstödd design , vetenskaplig visualisering , flygsimulering och videospel . Även OpenGL har inga metoder för att direkt rita en cirkel , kan en cirkel konstrueras med hjälp av en serie av linjer . Du behöver grundläggande kunskaper i OpenGL för att rita en cirkel

    Du behöver : .
    Dator med OpenGL-stöd
    Textredigerare och C språk sammanställning verktyg eller C utvecklingsmiljö.


    1 .
    Inrätta ett grundläggande program som visar en OpenGL vyport fönster . Om du är obekant med denna process , det finns en tutorial på grunderna i OpenGL .
    2 .
    Lägg till math. h header -filen till ditt program genom att skriva in följande kod i början av programmet :

    # include

    Detta kommer ge dig den cos () och sin ( ) funktioner ( cosinus och sinus ) behövs för att beräkna cirkeln .
    3 .
    Börja din cirkel metod genom att lägga in följande kod före bildskärmen callback -funktion :

    void drawCircle ( Glint x , y Glint , glimtar radie , int num_lines ) {

    }

    Variablerna " x " och " y "kommer att användas för att ställa in cirkelns centrum i ditt fönster , medan " radie " , naturligtvis , ställer radie av en cirkel . Heltalet " num_lines " är antalet linjer som används för att komponera cirkeln . Ju högre siffra , desto jämnare cirkeln verkar vara
    4
    Lägg till följande set-up kod inuti parentes : .

    flyter vinkel ;
    int num_lines ,
    glColor3f ( 0,0 , 0,0 , 0,0 ) ;

    Variabeln " vinkel " kommer att innehålla vinkel på linjerna som används för att konstruera en cirkel . Anropet till glColor3f () -funktionen ställer in färgen på linjerna till svart , där seriens tre 0-talet motsvarar intensiteten i rött , grönt och blått på en skala från 0 till 1.
    5 .
    Lägg till följande kod under glColor3f ()-anropet från Steg 4 :

    glBegin ( GL_LINE_LOOP ) ,

    Detta talar OpenGL att alla följande raderna omfattar ritning linjer . Specifikt , drar detta ett " GL_LINE_LOOP ", som drar en rad sammankopplade linor
    6
    Ange följande för-slinga kod efter glBegin ()-anropet : . .

    for (int i=0 ; i vinkel=i * 2 * M_PI /num_lines ,
    glVertex2f ( x + ( cos ( vinkel ) * radie ) , y + ( sin ( vinkel ) * radie )) ; }


    Denna slinga åstadkommer tre saker . Först itererar det num_lines gånger, där num_lines är ett heltal , dra en linje i varje iteration och resulterar i en cirkel bestående av num_lines raka linjer . För det andra räknar systemet ut den vinkeln på linjer i förhållande till mitten av cirkeln i radianer . " M_PI "är en konstant variabel definieras i math. h representerar pi . Slutligen beräknar glVertex2f ( ) kallar ( x , y ) koordinaterna för ändpunkterna av linjerna
    7
    Efter för -bågen, ange följande kodrad : .

    glEnd () ;

    Detta säger OpenGL du är klar dra linjer
    8
    att rita cirkeln i din scen . Lägg till ett anrop till drawCircle () för att ditt program display callback-funktion , som du bör ha förberett i steg 1 . Ange värden för x, y , radie och num_lines , där x och y representerar en punkt i ditt scen , är radien en radie av en cirkel , och num_lines är antalet linjer som ingår i cirkeln . Återigen, om du inte är bekant med OpenGL och displayen återuppringning , se OpenGL handledning .
    9 .
    Kompilera och kör programmet . Om du har angett fungera korrekt , bör det kompilera utan fel . Om du har angett giltiga värden för x , y och radie , bör du se en svart cirkel på vit botten .


Previous:nothing Next:rensar ett dropDownList





Relaterade artiklar


  • Oracle DBA Certification Exam krav
  • hur man skapar en multi lista användare email med PHP
  • Hur gör jag beständighetsprovningen hårdvara när man bygger en dator?
  • hur man ändrar markören på rollover
  • hur man anropar en lagrad procedur i en SQL -server från VB
  • hur man ordnar siffror från lägsta till högsta med Visual Basic
  • hur man skapar en webbläsare i visuell grunderna 2008
  • print tutorial för javascript
  • hur man skapar en ny ansökan asp.net web
  • Ta bort en nod binära sökträd