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ሻ
tsin(ߛሻ
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órejzapisywaneelementymacierzymodel-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);