Title: Logo
1Logo
- Stapsgewijze verfijning tekenen van een huis.
Uitbreiding naar meerdere huizen, variabele
afmetingen, coördinaten en kleuren - Opdracht voor het vak Vakdidactiek
- Door Van Looveren Leen
2Doelstellingen
- We hebben geleerd een probleem op te splitsen in
deelproblemen. - De deelproblemen werden dan eventueel nog eens
verfijnd totdat we allemaal deelproblemen kregen
die overeenstemde met een commando of een reeds
gekende procedure. - We gaan hier nog verder op ingaan door een reeds
gekend probleem uit te breiden naar een groter
probleem. - Om dit groter probleem op te lossen gaan we de
eenvoudige deelproblemen van het reeds gekend
probleem aanpassen. - Hierdoor wordt het nog duidelijker hoe belangrijk
het is een probleem op te splitsen in
deelproblemen.
3De procedure huis met parameters
- We gaan eerst opnieuw een huis bouwen. Deze keer
zullen we ervoor zorgen dat we parameters kunnen
meegeven aan de procedure huis zodanig dat we
gemakkelijk de grootte, de positie en de kleur
van het huis kunnen aanpassen. - to huis breedte Xpositie Ypositie huiskleur
dakkleur
4De procedure huis met parameters
- Het huis werd opgesplitst in deelproblemen
Deelprobleem Procedure Verfijning
Muren Vierhoek
Ramen Vierhoek
Deur Deur Vierhoek
Klink Cirkel
Dak Dak Trapezium
Schoorsteen Vierhoek
5De procedure huis met parameters
- Opgave 1a
- Maak de procedure deur_aangepast. Deze
procedure is een aangepaste versie van de
procedure deur. Zorg ervoor dat de breedte van
het huis wordt meegegeven als parameter bij de
nieuwe procedure deur_aangepast. - De breedte van de deur is 1/5de van de breedte
van het huis. - De hoogte van de muur van het huis is de helft
van de breedte van het huis. - De hoogte van de deur is 3/4de van de hoogte van
de muur van het huis.
6De procedure huis met parameters
- Implementatie deur_aangepast
- to deur_aangepast breedte
- repeat 2fd 3breedte/2/4 rt 90 fd breedte/5 rt
90 - pu
- rt 45
- fd 2
- setfc 175 85 0
- fill
- bk 2
- rt -45
- pd
- end
7De procedure huis met parameters
- Opgave 1b
- Schrijf de procedure klink_aangepast. De klink is
een cirkel. Deze krijgt ook als parameter de
breedte van het huis mee. Zorg ervoor dat de
grootte van de klink breedte/400 is.
8De procedure huis met parameters
- Implementatie deur_aangepast
- to klink_aangepast breedte
- repeat 36fd breedte/400 rt 10
- pu
- rt 45
- fd 1
- setfc 128 0 128
- fill
- bk 1
- rt -45
- pd
- end
9De procedure huis met parameters
- Opgave 1c
- Schrijf de procedure deur_met_klink_aangepast.
Deze procedure is een aanpassing van de procedure
deur_met_klink en moet natuurlijk ook de
parameter breedte van het huis meekrijgen. Ook
moet deze ervoor zorgen dat de klink altijd
verticaal gecentreerd aan de rechterkant van de
deur staat (ook als de deur bijvoorbeeld
verkleind wordt). - De procedure deur_met_klink_aangepast bepaalt
zelf zijn positie binnen de muren.
10De procedure huis met parameters
- Implementatie deur_met_klink_aangepast
- to deur_met_klink_aangepast breedte X Y
- pu
- setXY X(breedte/43) Y
- pd
- deur_aangepast breedte
- pu
- setXY X(breedte/43)(4/5(breedte/5))
Y(1/2(3breedte/2/4)) - pd
- klink_aangepast breedte
- pu
- setXY X Y
- pd
- end
11De procedure huis met parameters
- Opgave 2
- Maak de procedure raam_aangepast. Dit is een
aanpassing van de procedure raam. Geef deze de
parameters breedte van het huis, Xpositie en
Ypositie mee. Een raam bepaalt zelf zijn positie
binnen de muren van het huis.
12De procedure huis met parameters
- Implementatie raam_aangepast
- to raam_aangepast breedte X Y
- pu
- setXY X(1/5(breedte)) Y(breedte/2/3)
- pd
- repeat 2fd 1/3(breedte/2) rt 90 fd
1/3breedte rt 90 - pu
- rt 45
- fd 2
- setfc 128 128 255
- fill
- bk 2
- rt -45
- setXY X Y
- pd
- end
13De procedure huis met parameters
- Opgave 3
- Maak een procedure muur_aangepast. Deze is een
aanpassing van de procedure muur. Geef hem de
parameters breedte van het huis, Xpositie,
Ypositie en kleur mee. - to muur breedt X Y kleur
- Gebruik setfc kleur
14De procedure huis met parameters
- Implementatie muur_aangepast
- to muur_aangepast breedte X Y kleur
- cs
- pu
- setXY X Y
- pd
- repeat 2fd breedte/2 rt 90 fd breedte rt 90
- pu
- rt 45
- fd 2
- setfc kleur
- fill
- bk 2
- rt -45
- pd
- end
15De procedure huis met parameters
- Opgave 4 Schrijf de procedure muur_deur_raam.
Deze is een aanpassing van de procedure
muur_met_deur_met_raam. Geef weer de nodige
parameters mee.
16De procedure huis met parameters
- Implementatie muur_deur_raam
- to muur_deur_raam breedte X Y kleur
- muur_aangepast breedte X Y kleur
- deur_met_klink_aangepast breedte X Y
- raam_aangepast breedte X Y
- pu
- setXY X Y
- pd
- end
17De procedure huis met parameters
- Opgave 5a
- Maak de procedure dak_aangepast. Dit is een
aanpassing op de procedure dak. Geef de breedte
van het huis mee, de Xpositie, de Ypositie en de
kleur van het dak. Het dak bepaalt ook zijn eigen
positie t.o.v. de muur. Neem als lengte voor de
kleine basis van de trapezium 3/4de van de grote
basis
18De procedure huis met parameters
¾(breedte)
(Breedte-(¾breedte)) /2
(X (Breedte-(¾breedte)) /2 (¾breedte), Y
breedte/2breedte/4)
(X (Breedte-(¾breedte)) /2, Y
breedte/2breedte/4)
Breedte/4
(X, Y breedte/2)
(Xbreedte, Y breedte/2)
Breedte/2
breedte
(0, 0)
19De procedure huis met parameters
- Implementatie dak_aangepast
- to dak_aangepast breedte X Y kleur
- pu
- setXY X Y(breedte/2)
- pd
- setXY X(breedte-(3breedte)/4)/2
Y(breedte/2)(breedte/4) - setXY X(breedte-(3breedte)/4)/2(3/4breedt
e) Y(breedte/2)(breedte/4) - setXY Xbreedte Ybreedte/2
- setXY X Y(breedte/2)
- pu
- rt 60
- fd 2
- setfc kleur
- fill
- bk 2
- rt -60
- setXY X Y
- pd
20De procedure huis met parameters
- Opgave 5b
- Schrijf de procedure schoorsteen_aangepast.Deze
is een aanpassing van de procedure schoorsteen.
Zorg ervoor dat de schoorsteen zichzelf de juiste
positie en grootte toekent. Deze krijgt ook de
parameters breedte, Xpositie, Ypositie en kleur
mee. De kleur is dezelfde als die van de muren.
(1/20breedte)
(¾breedte))
(1/15breedte)
21De procedure huis met parameters
- Implementatie schoorsteen_aangepast
- to schoorsteen_aangepast breedte X Y kleur
- pu
- setXY X(3/4breedte) Y(breedte/2)(breedte
/4) - pd
- repeat 2fd 1/15breedte rt 90 fd 1/10breedte
rt 90 - pu
- rt 45
- fd 2
- setfc kleur
- fill
- bk 2
- rt -45
- pd
- end
22De procedure huis met parameters
- Opgave 5c
- Maak de procedure dak_met_schoorsteen_aangepast.
Dit is een aanpassing van de procedure
dak_met_schoorsteen. Welke parameters moeten hier
worden meegegeven? - Opgave 6 Maak de procedure huis_aangepast. Dit
is een aanpassing van de procedure huis. Vergeet
niet je turtle te laten verdwijnen.
23De procedure huis met parameters
- Implementatie dak_met_schoorsteen_aangepast
- to dak_met_schoorsteen_aangepast breedte X Y
huiskleur dakkleur - dak_aangepast breedte X Y dakkleur
- schoorsteen_aangepast breedte X Y huiskleur
- pu
- setXY X Y
- pd
- end
- Implementatie huis_aangepast
- to huis_aangepast breedte X Y huiskleur
dakkleur - muur_deur_raam breedte X Y huiskleur
- dak_met_schoorsteen_aangepast breedte X Y
huiskleur dakkleur - HT
- end
24Een dorp bouwen
- De procedure dorp
- - kies je eigen achtergrondkleur
- - Roep een aantal keer de procedure
huis_aangepast op met verschillende parameters - - Voeg er eventueel nog een zonnetje, een boompje
of een weggetje bij.
25Een dorp bouwen
- Implementatie van een dorp
- to dorp
- setSC 210 250 200
- huis_aangepast 380 -500 -100 255 0 0 128 0
128 - huis_aangepast 250 -100 -30 255 50 70 180 0
180 - huis_aangepast 200 150 -50 255 23 14 0 200
255 - huis_aangepast 100 130 150 255 0 0 25 255
255 - huis_aangepast 70 230 225 100 70 35 200 70
40 - huis_aangepast 120 230 120 25 200 87 0 98 43
- huis_aangepast 70 10 215 25 0 87 10 98 30
- huis_aangepast 60 80 225 250 200 200 0 98
150 - end
26Conclusie
- Om een dorp te tekenen hadden we een huis nodig
met parameters. Zo konden we op verschillende
posities huizen plaatsen met verschillende
kleuren en groottes. - Het huis met parameters zijn we bekomen uit een
huis zonder parameters. - Het huis zonder parameters was opgesplitst in
deelproblemen. Zo moesten we enkel, met wat
logische denkwerk, eenvoudige procedures
aanpassen. - Het huis met parameters was dus ook opgesplitst
in deelproblemen. Elk deelprobleem zorgde zelf
voor zijn positie, grootte en kleur. Als we dan
bijvoorbeeld een deur aan de linkerkant van het
huis willen of een puntdak willen tekenen, moeten
we enkel aan 1 eenvoudige procedure veranderingen
aanbrengen. - We hebben geleerd dat, door stapsgewijs een groot
probleem op te splitsen in deelproblemen en deze
deelproblemen eventueel nog te verfijnen totdat
ze overeenstemmen met een reeds gekende procedure
of een commando, we niet alleen ons probleem
vereenvoudigen, maar ook toekomstige
veranderingen gemakkelijk maken.