Demo
6 / Ma 21.10
1. Räiskintä
- 1.
- Korjaa
liikennevalot (ota
n:\kurssit\winohj\delphi\vclclx\comps\raiskinta
ja kokeile testiohjelmaa
AutoPeli.dpr).
- 2.
- Vaihda
testiohjelmassa rivin
Auto := TRusinaksiMuuttuvaAuto.Create(space);
tilalle
Auto := TAuto.Create(space);
-
- Tutki
miksi autot häviävät ruudusta törmäyksessä. Peri
TAutosta
sellainen auto, joka ei häviä törmäyksessä. Vaihda
testiohjelman luomiseen tällaisten autojen luominen ja kokeile.
- 3*4.
- Lisää
koira, joka kulkee myös vinottain. Kun koira "törmää"
liikennevaloon, niin se jättää siihen keltaisen
läiskän ("
TPissi")
ja vaihtaa sitten satunnaiseen kulkusuuntaan.
TPissi
haihtuu pois 20 sekunnin kuluessa.
2. Piirtäminen
ja muunnosmatriisit
- 5*6.
- Muuta
esimerkissä
vclclx\comps\piirto\sinform.pas
ollutta ratkaisua vielä oliomaisemmaksi: Tee ensin luokka
cFunktionKuvaaja,
jossa on piirrettävä funktio
f
ja
piirtoväli
[x1,x2]
sekä väri. Tähän luokkaan sitten metodi
Draw(dc:TCanvas,
const A: cTMatrix)
,
joka suorittaa varsinaisen piirtämisen. Ikkunaan laita olio-
osoitintaulukko (tallettaa tyyppiä
cFunktionKuvaaja)
funktiot:TList;
,
johon ikkunan luomisen yhteydessä alustetaan muutama funktio ja
piirrä kaikki funktiot
OnPaint
tapahtumassa
for-silmukalla.
Halutessasi voit tehdä myös funktiotaulukosta olion!
3. Bonus
- 7*8.
- Kokeile
piirtää edelliseen ohjelmaan myös funktion
-
- f(x,y)
= sin(x)*cos(y)
-
kuvaaja.
Vihje: luo uusi funktioluokka ja kierrä koordinaatistoa
pääikkunan
scale
metodissa esimerkiksi lisäämällä metodin loppuun (C++
syntaksilla annettuna):
cRotMatrix Rx(0,40.0),Ry(1,30.0);
A *= Rx*Ry;
-
- (Mallia
valmiista ohjelmasta voit katsoa esim:
vclclx/comps/piirto/Piirto3d.exe)