Jak z wierzchołków stworzyć trójkąt(OpenGL)
Essair
Gdy zainicjujesz już opengl, możesz zacząc rysowanie.
-
Oczyść Bufor
a) glClearColor( 0.0f, 0.0f, 0.0f, 1.0f ); // ustawia kolor tła - czarny -
Ustaw bufor koloru
b) glClear( GL_COLOR_BUFFER_BIT ); -
Przekaż do funkcji void glbegin() rodzaj figury.
c) glBegin( GL_TRIANGLES ); // trójkąt -
Ustaw kolor trójkąta
d) glColor3f( 1.0f, 1.0f, 1.0f ); // kolor biały -
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 );
- Wymień bufory funkcją - void SwapBuffers();
g) SwapBuffers( hDC );
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...