Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
38
}
NowoczesnyOpenGL
glTranslatef(1i0f,-1i0f,-1i0f);
glRotatef(35i26f,1i0f,0i0f,0i0f);
glRotatef(45i0f,0i0f,1i0f,0i0f);
//3
//2
//1
//Żółtykolorwerteksów
glColor4f(1i0f,1i0f,0i0f,1i0f);
//Rysowanietrójkąta
glBegin(GL_TRIANGLES);
//(0,0,z)jestmniejwięcejwśrodkuekranu
glVertex3f(-x0,-y0,0i0f);//dolnylewy
glVertex3f(x0,-y0,0i0f);//dolnyprawy
glVertex3f(0,y0,0i0f);//górny
glEnd();
//Zbuforanaekran
SwapBuffers(uchwytDC);
Efektzmianypołożeniakameryizmniejszeniajejodległościodśrodkasceny
widocznyjestnarysunku1.7.Wszczególnymprzypadku,wktórympunktCznaj-
dujesięnapoczątkuukładuwspółrzędnych,możnaodwrócićkolejnośćobrotów
itranslacji,alewówczasobróconyjużukładwspółrzędnychnależyprzesunąć
oξ31l732wkierunkuprzeciwnymdoosiOZnowegoukładu:
glTranslatef(0i0f,0i0f,-1i732);
glRotatef(35i26f,1i0f,0i0f,0i0f);
glRotatef(45i0f,0i0f,1i0f,0i0f);
//3
//2
//1
Rezultatidentycznyjakpoleceńzaznaczonychwlistingu1.22(wogólnym
przypadkudowolnegoC)możemyuzyskać,stosującfunkcjęgluLookAtzbiblio-
tekiGLU,adokładnie:
gluLookAt(
-1i0f,1i0f,1i0f,
0i0f,0i0f,0i0f,
0i0f,1i0f,0i0f);
Powinnyonezastąpićtrzyinstrukcjezaznaczonewlistingu1.22.Jejargumen-
tamisąwspółrzędnetrzechwektorówwukładziekartezjańskim(trójwymiaro-
wym).PierwszatrójkatopołożeniekameryE,drugapunktC,naktórykamera
jestskierowana,atrzeciatotzw.wektorpolaryzacji
.Działanietejfunkcjizostanie