Treść książki
Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
J.Matulewski,T.Dziubak,M.Sylwestrzak,R.Płoszajczak,Grafika.Fizyka.Metodynumeryczne.
Symulacjefizycznezwizualizacj
ą
3D,Warszawa2010
ISBN978-83-01-16178-1,©byWNPWN2010
56
CzęśćI.GrafikatrójwymiarowawOpenGL
(2.18)
ܶ௫ܱ௭ܶି௫ൌ൮
1
0
0
0
0
1
0
0
0
0
1
0
െt௫
1൲൮
0
0
cos(ߛሻ
sin(ߛሻ
0
0
െsin(ߛሻ
cos(ߛሻ
0
0
0
0
1
0
0
1൲൮
0
0
1
0
0
0
0
1
0
0
0
0
1
0
t௫
1൲ൌ
0
0
ൌ൮
cos(ߛሻ
sin(ߛሻ
0
0
െsin(ߛሻ
cos(ߛሻ
0
0
0
0
1
0
െt௫
1൲൮
0
0
1
0
0
0
0
1
0
0
0
0
1
0
t௫
1൲ൌ
0
0
ൌ൮
cos(ߛሻ
sin(ߛሻ
0
0
െsin(ߛሻ
cos(ߛሻ
0
0
0
0
1
0
t௫(cos(ߛሻെ1ሻ
t௫sin(ߛሻ
0
1
൲
Odczytywaniewartościmacierzy
Możliwejestodczytaniebieżącejwartościmacierzymodel-widoklubmacierzy
rzutowania,choćszczerzemówiącmożliwośćtaniejestzbytczęstopotrzebna.Co
więcej,jejzbytczęstewykorzystywaniemożeznaczącozmniejszyćwydajnośćpro-
gramu.Listing2.4prezentujefragmentkodu,wktórymmacierzmodel-widokinicjo-
wanajestmacierząjednostkową,poczymmnożonaprzezwektortranslacjiiobrotu.
NastępniewywołujemyfunkcjęglGetFloatv,przekazującjakoargumentszesnasto-
elementowątablicę,doktórejzapisywanesąelementymacierzymodel-widok.Mo-
żemyjepodejrzećwpodoknieLocalsśrodowiskaVisualC++zawierającymzmienne
zbieżącegozakresu(rysunek2.4).
Listing2.4.Pobieraniewartościelementówmacierzymodel-widok
glMatrixMode(GL_MODELVIEW_MATRIX);
glLoadIdentity();//macierzmodel-widok=macierzjednostkowa
glTranslatef(0.0,0.0,-10.0);//odsunięciecałościo10
glRotatef(45,0,0,1);
floatmacierz[16];
glGetFloatv(GL_MODELVIEW_MATRIX,macierz);