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