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
70
CzęśćI.GrafikatrójwymiarowawOpenGL
Nalistingu3.8funkcjirysującejprostopadłościantowarzyszystatycznafunkcja
składowaModele::RysujSzescian,któraposługującsięfunkcjąModele::RysujPro-
stopadloscianrysujesześcian.Zwróćmyuwagę,żenawetjeżelidysponowalibyśmy
tylkofunkcjąrysującąsześcian,prostopadłościanmoglibyśmynarysować,korzystając
zprzekształceniaskalowania.
MetodyRysujProstopadloscianiRysujSzescianpowinnybyćstatycznymime-
todamiklasyModele.Oznaczato,żewplikuModele.hpowinienznaleźćsiękod
widocznynalistingu3.9.
Listing3.9.ZawartośćplikunagłówkowegoModele.h
#ifndefMODELE_H
#defineMODELE_H
classModele
{
public:
staticvoidRysujProstopadloscian(floatdx,floatdy,floatdz,boolkoloruj);
staticvoidRysujSzescian(floatkrawedz,boolkoloruj);
};
#endif
InstrukcjęwywołującąmetodęModele::RysujProstopadloscianlubModele::
RysujSzesciannależyumieścićwmetodzieCMojeOknoGL::RysujAktorow.Warto
wcześniejwykonaćniewielkiobrót,żebyprzekonaćsię,żetorzeczywiściefigura
przestrzenna(jużniedługobędziemymogliporuszaćkamerązapomocąmyszki):
lRotatef(30,1,1,1);
Modele::RysujSzescian(2*x0,true);
Efektpowinienbyćtakisam,jaknarysunku3.3.
Prostopadłościanbędziewygodnymmodelemwdalszychrozdziałachzewzględu
naprostedowyznaczeniakierunkipłaszczyznidziękiprostokątnymścianom,które
łatwymmiejscemdoumieszczaniarysunkówzplikówgraficznych.Ztychzalet
skorzystamyjednakdopierowkolejnychrozdziałach.
Możemyspróbowaćwyłączyćkolorowanie.Odrazuprzekonamysięjednak,że
znikaefekttrójwymiarowości.Naszsześcianniejestjeszczebowiemnależycieoświe-
tlony.PowinnatobyćdlaCzytelnikamotywacja,abyuważnieprzeczytaćpiątyroz-
działdotyczącyoświetleniaibarw.Maonokluczoweznaczeniedlanaszegopo-
strzeganiatrójwymiarowegoświata.