GRAFIKA KOMPUTEROWA 6: Obiekty geometryczne
Transkrypt
GRAFIKA KOMPUTEROWA 6: Obiekty geometryczne
Akademia Górniczo - Hutnicza Wydział Inżynierii Metali i Informatyki Przemysłowej ul. Adama Mickiewicza 30, 30-059 Kraków GRAFIKA KOMPUTEROWA 6: Obiekty geometryczne (podstawowe prymitywy) http://galaxy.agh.edu.pl/~mhojny Prowadzący: dr inż. Hojny Marcin Akademia Górniczo-Hutnicza Mickiewicza 30 30-059 Krakow pawilon B5/p.406 tel. (+48)12 617 46 37 e-mail: [email protected] Akademia Górniczo - Hutnicza Wydział Inżynierii Metali i Informatyki Przemysłowej ul. Adama Mickiewicza 30, 30-059 Kraków 1. Cel projektu: Zapoznanie się z podstawowymi prymitywami graficznymi takimi jak: punkty, linie, trójkąty, wstęgi trójkątów, wachlarze trójkątów, czworokąty, wachlarze czworokątów oraz wielokąty. Definiowanie wielkości punktów, grubość oraz wzory linii. 2. Zadanie projektowe: Napisać aplikację która: a) rysuje czworokąt oraz trójkąt, b) rysuje wstęgę trójkątów, c) rysuje wachlarz trójkątów, d) rysuje punkty o różnych rozmiarach, e) rysuje linie o różnej szerokości oraz wzorze. ! Aplikacja powinna zawierać: a) menu wyboru, b) możliwość definicji parametrów sterujących danym algorytmem np. współrzędnych punktów, ilość obiektów w wstędze czy też wachlarzu itd.... 3. OpenGL - przydatne funkcje i parametry: PRYMITYWY: Funkcje: void glBegin( GLenum mode ) void glEnd( void ) Parametry: GL_POLYGON - definiuje wielokąt GL_QUADS - definiuje czworokąt GL_QUAD_STRIP - definiuje wstęgę czworokątów, GL_POINTS - definiuje punkt: {p1}, {p2}, {p3}, itd..., GL_LINES - definiuje odcinek: {p1, p2}, {p3, p4}, itd..., Akademia Górniczo - Hutnicza Wydział Inżynierii Metali i Informatyki Przemysłowej ul. Adama Mickiewicza 30, 30-059 Kraków GL_LINE_STRIP - definiuje łamaną: {p1, p2}, {p2, p3}, itd..., GL_TRIANGLES - definiuje trójkąt: {p1, p2, p3}, {p4, p5, p6}, ..., GL_TRIANGLE_STRIP - definiuje wstęgę trójkatów: {p1, p2, p3}, {p3, p2, p4}, itd..., GL_TRIANGLE_FAN - definiuje wachlarz trójkatów: {p1, p2, p3}, {p1, p3, p4}, itd..., DEFINICJA WSPÓŁRZĘDNYCH WIERZCHOŁKÓW: Funkcje: void glVertex3d( GLdouble x, GLdouble y, GLdouble z ) void glVertex3f( GLfloat x, GLfloat y, GLfloat z ) void glVertex3i( GLint x, GLint y, GLint z ) void glVertex3s( GLshort x, GLshort y, GLshort z ) RYSOWANIE PUNKTÓW: Funkcje: void glPointSize( GLfloat size ) Wielkość parametru size który określa wielkość punktu musi być większa od 0 (wartość domyślna =1). Maksymalny zakres wielkości punktu oraz krok z jakim wielkość ta może być zmieniana zależy od implementacji biblioteki OpenGL. RYSOWANIE LINII: Funkcje: void glLineWidth( GLfloat width ) Parametr width definiuje grubość linii i musi być większy od 0 (wartość domyślna 1). Maksymalny zakres szerokości linii oraz krok z jakim wielkość ta może być zmieniana zależy od implementacji biblioteki OpenGL. Biblioteka OpenGL pozwala także na definicję wzoru jakim będzie rysowana linia za pomocą funkcji: void glLineStipple( GLint factor, GLushort pattern ) Akademia Górniczo - Hutnicza Wydział Inżynierii Metali i Informatyki Przemysłowej ul. Adama Mickiewicza 30, 30-059 Kraków Parametr pattern jest 16-bitową liczbą całkowitą która zawiera wzór rysowanej linii, a parametr factor definiuje zwielokrotnienie bitów wzoru (z przedziału [1-256]). Początkowy wzór linii jest linią ciągłą. Domyślnie rysowanie linii ze wzorami jest wyłączone. Aby włączyć ten mechanizm musimy wywołać funkcję glEnable z parametrem GL LINE - STIPPLE. 4. Literatura: a) J.D.Foley, A. van Dam, S.K. Finer, J.F. Hughes, R.L. Phillips, “Wprowadzenie do grafiki komputerowej". b) http://www.opengl.org 5. Co na następnych zajęciach: Kolor, cieniowanie.