Programowanie w języku C/C++ » FAQ

Jak z wierzchołków stworzyć trójkąt(OpenGL)

Gdy zainicjujesz już opengl, możesz zacząc rysowanie.
1. Oczyść Bufor
 a) glClearColor( 0.0f, 0.0f, 0.0f, 1.0f ); // ustawia kolor tła - czarny
2. Ustaw bufor koloru
 b) glClear( GL_COLOR_BUFFER_BIT );
3. Przekaż do funkcji void glbegin() rodzaj figury.
 c) glBegin( GL_TRIANGLES ); // trójkąt
4. Ustaw kolor trójkąta
 d) glColor3f( 1.0f, 1.0f, 1.0f ); // kolor biały  
5. Ustaw punkty na układzie współrzędnych.
 a) Układ współrzędnych.

                                                                                     
                                           |1                                          
                                           |
                                           |0.8
                                           |
                                         C|0.6
                                           |
                                           |0.4
                                           |
                                           |0.2

                                           |                                B


x                                       A|0    0.2        0.4        0.6        0.8        1    
                                           |
                                           |
                                           |
                                           |
                                           |y          

 b) Narysujemy trójkąt prostokątny.

 c) Trókąt składać się będzie z trzech punktów.

 d) Żeby wywołać punkt (jeden z wierzchołków trójkąta ) trzeba użyć funkcji: void glVertex3f(GL float x, GL float y, GL float z); gdzie x,y,z to położenie na układzie współrzędnych. Z jest związane z głębokością i w grafice 2d ustawiamy ją zwykle 0.0 albo 1.0. Są różne rodzaje wywołań punktów(wierchołków), ale zwykle korzysta się z tej którą podałem.
 
 e) glEnd(); kończy rysowanie

 f) Kod trójkąta o wierzchołkach A, B, C

 glClearColor( 0.0f, 0.0f, 0.0f, 1.0f ); // ustawiwa kolor tła - czarny
 glClear( GL_COLOR_BUFFER_BIT );
   glBegin( GL_TRIANGLES );
        glColor3f( 1.0f, 1.0f, 1.0f );

        glVertex3f( 0.0f, 0.0f, 0.0f );
        glVertex3f( 0.6f, 0.0f, 0.0f );
        glVertex3f( 0.0f, 0.6f, 0.0f );
    glEnd();
    SwapBuffers( hDC );

 6. Wymień bufory funkcją - void SwapBuffers();
   g) SwapBuffers( hDC );
   

3 komentarze

T72 2006-08-13 23:59

Hehe fajne jest zdane "c) Trókąt składać się będzie z trzech punktów." :) i faktycznie to początek czyli zainicjowanie OpenGL jest ciężkie nie rysowanie powierzchni :) no ale pewne komuś kto będzie chciał co nieco przeskoczyć się przyda.

Essair 2003-07-04 11:07

Starałem sie jak moge, a to jest układ współrzędnych, tylko nie wiem jak sie wstawia rysunki wiec narysowałem z liter :). Przyjrzyj sie :)

berl 2003-07-04 10:42

Wybacz słowa krytyki, ale napisałeś "Gdy zainicjujesz już opengl, możesz zacząc rysowanie. ". Dla większości poczatkujących to jest problem, a nieco bardziej zaawansowani umieją narysować trójkąt. I ten rysunek jakiś zamazany, nie wiem co na nim jest, chyba nie mam wyobraźni za grosz...