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.