Laboratorium grafika3D 5

background image

Laboratorium nr 5

1/3

Instrukcja

laboratoryjna

5

Grafika komputerowa

Temat: Operacje na macierzach, obsługa myszy

Przygotował: mgr inż. Grzegorz Pawiński

1) Przekształcenia układu współrzędnych

W OpenGL przekształcenia obiektu dokonywane są za pomocą przekształcenia całego

układu współrzędnych. Wykonując transformacje obiektu lub zmianę ustawienia kamery,

początek układu współrzędnych również zostaje zmieniony. Nowe przekształcenie będzie

dokonane względem nowego położenia układu współrzędnych. Sytuacja się komplikuje, gdy

na scenie jest rysowane kilka obiektów.

2) Przywrócenie początkowego układu współrzędnych

Przekształcony układ współrzędnych można przywrócić za pomocą wywołania funkcji

która zastąpi aktualnie przechowywaną macierz, macierzą jednostkową.

glLoadIdentity(), 

3) Stos macierzy

Wszystkie macierze przechowywane są na oddzielnym stosie. Dla macierzy

modelowania, głębokość takiego stosu wynosi przynajmniej 32. Możliwe jest zapamiętanie

stanu układu współrzędnych, tak aby kolejne przekształcenia zawsze były wykonywane z

tego samego położenia.

background image

Laboratorium nr 5

2/3

3.1) Zapamiętanie macierzy

glPushMatrix()

Funkcja glPushMatrix() zapamiętuje aktualny stan układu współrzędnych, poprzez

zduplikowanie macierzy znajdującej się na szczycie stosu. Na stosie znajdują się dwie

identyczne macierze, a operacje wykonywane będą na tej ostatniej.

3.2 ) Przywrócenie macierzy

glPopMatrix()

Zdjęcie macierzy ze szczytu stosu, przywraca układ współrzędnych do poprzedniego

stanu. Początkowo na stosie powinna znajdować się tylko macierz jednostkowa.

4) Funkcje obsługi myszy

Do obsługi myszy służą dwie funkcje

4.1) funkcja obsługi klawiszy myszy.

void mouseButton (int button, int state, int x, int y)

Przyjmuje ona cztery parametry. Pierwszy przechowuje informacje o przycisku, a

drugi o jego stanie. Kolejne dwa parametry przechowują współrzędne kursora myszy w

momencie wywołania funkcji.

Parametr „button”

Opis

GLUT_LEFT_BUTTON

Lewy klawisz myszy

GLUT_RIGHT_BUTTON

Prawy klawisz myszy

GLUT_MIDDLE_BUTTON,

Środkowy klawisz myszy

2

background image

Laboratorium nr 5

3/3

Parametr „state”

Opis

GLUT_DOWN

Klawisz wciśnięty

GLUT_UP

Klawisz zwolniony

4.2)

funkcja obsługi ruchu myszy

void mouseMove (int x, int y);

Funkcja jest wywoływana podczas ruchu kursora myszy po ekranie. Podaje aktualną

pozycję kursora.

4.3)

Rejestracja funkcji

Funkcje obsługi myszy należy jeszcze zarejestrować

Nazwa funkcji

Opis

glutMouseFunc(void*)

Funkcja służy do podpięcia (rejestracji) funkcji

odpowiedzialnej za obsługę klawiszy myszy

glutMotionFunc(void*)

Funkcja służy do podpięcia (rejestracji) funkcji

odpowiedzialnej za obsługę ruchu kursora myszy

3


Wyszukiwarka

Podobne podstrony:
Laboratorium 4 Grafika 3D
Laboratorium grafika3D 7
Laboratorium grafika2D 3
Laboratorium grafika2D 7
Laboratorium grafika2D 5
Laboratorium grafika3D 6
Laboratorium grafika3D 2
Laboratorium Grafiki Komputerowej3, Studia PK, Inne - serwer Nexus, Dydaktyka, ZaoczniGK, OpenGL-lab
Laboratorium grafika2D 6
Laboratorium grafika3D 1
Laboratorium grafika3D 3
Laboratorium 4 Grafika 3D
Laboratorium grafika3D 7
Laboratorium grafika2D 3
Laboratorium grafika2D 7

więcej podobnych podstron