C/C++ » FAQ

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

Essair

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 ); 
  1. Wymień bufory funkcją - void SwapBuffers();
    g) SwapBuffers( hDC );
FAQ

3 komentarzy

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.

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 :)

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...