Logo

26
Logo Logo Stapsgewijze verfijning: tekenen van een Stapsgewijze verfijning: tekenen van een huis. Uitbreiding naar meerdere huizen, huis. Uitbreiding naar meerdere huizen, variabele afmetingen, coördinaten en variabele afmetingen, coördinaten en kleuren kleuren Opdracht voor het vak Vakdidactiek Opdracht voor het vak Vakdidactiek Door Van Looveren Leen Door Van Looveren Leen

description

Logo. 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. Doelstellingen. We hebben geleerd een probleem op te splitsen in deelproblemen. - PowerPoint PPT Presentation

Transcript of Logo

Page 1: Logo

LogoLogoStapsgewijze verfijning: tekenen van een huis. Stapsgewijze verfijning: tekenen van een huis. Uitbreiding naar meerdere huizen, variabele Uitbreiding naar meerdere huizen, variabele

afmetingen, coördinaten en kleuren afmetingen, coördinaten en kleuren

Opdracht voor het vak VakdidactiekOpdracht voor het vak VakdidactiekDoor Van Looveren LeenDoor Van Looveren Leen

Page 2: Logo

DoelstellingenDoelstellingen

We hebben geleerd een probleem op te splitsen in We hebben geleerd een probleem op te splitsen in deelproblemen. deelproblemen.

De deelproblemen werden dan eventueel nog eens De deelproblemen werden dan eventueel nog eens verfijnd totdat we allemaal deelproblemen kregen verfijnd totdat we allemaal deelproblemen kregen die overeenstemde met een commando of een die overeenstemde met een commando of een reeds gekende procedure.reeds gekende procedure.

We gaan hier nog verder op ingaan door een reeds We gaan hier nog verder op ingaan door een reeds gekend probleem uit te breiden naar een groter gekend probleem uit te breiden naar een groter probleem. probleem.

Om dit groter probleem op te lossen gaan we de Om dit groter probleem op te lossen gaan we de eenvoudige deelproblemen van het reeds gekend eenvoudige deelproblemen van het reeds gekend probleem aanpassen.probleem aanpassen.

Hierdoor wordt het nog duidelijker hoe belangrijk het Hierdoor wordt het nog duidelijker hoe belangrijk het is een probleem op te splitsen in deelproblemen.is een probleem op te splitsen in deelproblemen.

Page 3: Logo

De procedure ‘huis’ met De procedure ‘huis’ met parametersparameters

We gaan eerst opnieuw een huis bouwen. Deze We gaan eerst opnieuw een huis bouwen. Deze keer zullen we ervoor zorgen dat we keer zullen we ervoor zorgen dat we parameters kunnen meegeven aan de parameters kunnen meegeven aan de procedure “huis” zodanig dat we gemakkelijk procedure “huis” zodanig dat we gemakkelijk de grootte, de positie en de kleur van het huis de grootte, de positie en de kleur van het huis kunnen aanpassen.kunnen aanpassen.

to to huis :breedte :Xpositie :Ypositie :huiskleur :dakkhuis :breedte :Xpositie :Ypositie :huiskleur :dakkleurleur

Page 4: Logo

De procedure ‘huis’ met De procedure ‘huis’ met parametersparameters

Het huis werd opgesplitst in deelproblemen:Het huis werd opgesplitst in deelproblemen:

DeelprobleemDeelprobleem ProcedureProcedure Verfijning Verfijning

MurenMuren VierhoekVierhoek

RamenRamen VierhoekVierhoek

DeurDeur DeurDeur VierhoekVierhoek

KlinkKlink CirkelCirkel

DakDak DakDak TrapeziumTrapezium

SchoorsteenSchoorsteen VierhoekVierhoek

Page 5: Logo

De procedure ‘huis’ met De procedure ‘huis’ met parametersparameters

Opgave 1a:Opgave 1a:Maak de procedure ‘deur_aangepast’. Deze Maak de procedure ‘deur_aangepast’. Deze

procedure is een aangepaste versie van de procedure is een aangepaste versie van de procedure ‘deur’. Zorg ervoor dat de procedure ‘deur’. Zorg ervoor dat de breedte van het huis wordt meegegeven als breedte van het huis wordt meegegeven als parameter bij de nieuwe procedure parameter bij de nieuwe procedure ‘deur_aangepast’. ‘deur_aangepast’.

De breedte van de deur is 1/5de van de De breedte van de deur is 1/5de van de breedte van het huis.breedte van het huis.

De hoogte van de muur van het huis is de De hoogte van de muur van het huis is de helft van de breedte van het huis.helft van de breedte van het huis.

De hoogte van de deur is 3/4de van de hoogte De hoogte van de deur is 3/4de van de hoogte van de muur van het huis.van de muur van het huis.

Page 6: Logo

De procedure ‘huis’ met De procedure ‘huis’ met parametersparameters

Implementatie deur_aangepast:Implementatie deur_aangepast:

to deur_aangepast to deur_aangepast :breedte:breedterepeat 2[fd repeat 2[fd 3*:breedte/2/43*:breedte/2/4 rt 90 fd rt 90 fd :breedte/5:breedte/5 rt rt

90]90]pupurt 45rt 45fd 2fd 2setfc [175 85 0]setfc [175 85 0]fillfillbk 2bk 2rt -45rt -45pdpdendend

Page 7: Logo

De procedure ‘huis’ met De procedure ‘huis’ met parametersparameters

Opgave 1b:Opgave 1b:

Schrijf de procedure klink_aangepast. Schrijf de procedure klink_aangepast. De klink is een cirkel. Deze krijgt ook De klink is een cirkel. Deze krijgt ook als parameter de breedte van het huis als parameter de breedte van het huis mee. Zorg ervoor dat de grootte van mee. Zorg ervoor dat de grootte van de klink :breedte/400 is.de klink :breedte/400 is.

Page 8: Logo

De procedure ‘huis’ met De procedure ‘huis’ met parametersparameters

Implementatie deur_aangepast:Implementatie deur_aangepast:

to klink_aangepast to klink_aangepast :breedte:breedte repeat 36[fd :breedte/400 rt 10] pu rt 45 fd 1 setfc [128 0 128] fill bk 1 rt -45 pd end

Page 9: Logo

De procedure ‘huis’ met De procedure ‘huis’ met parametersparameters

Opgave 1c:Opgave 1c:Schrijf de procedure Schrijf de procedure

deur_met_klink_aangepast. Deze procedure deur_met_klink_aangepast. Deze procedure is een aanpassing van de procedure is een aanpassing van de procedure deur_met_klink en moet natuurlijk ook de deur_met_klink en moet natuurlijk ook de parameter breedte van het huis meekrijgen. parameter breedte van het huis meekrijgen. Ook moet deze ervoor zorgen dat de klink Ook moet deze ervoor zorgen dat de klink altijd verticaal gecentreerd aan de altijd verticaal gecentreerd aan de rechterkant van de deur staat (ook als de rechterkant van de deur staat (ook als de deur bijvoorbeeld verkleind wordt).deur bijvoorbeeld verkleind wordt).De procedure deur_met_klink_aangepast De procedure deur_met_klink_aangepast bepaalt zelf zijn positie binnen de muren.bepaalt zelf zijn positie binnen de muren.

Page 10: Logo

De procedure ‘huis’ met De procedure ‘huis’ met parametersparameters

Implementatie deur_met_klink_aangepast:Implementatie deur_met_klink_aangepast:

to deur_met_klink_aangepast to deur_met_klink_aangepast :breedte :X :Y:breedte :X :YpupusetXY :X+(:breedte/4*3) :YsetXY :X+(:breedte/4*3) :Ypdpddeur_aangepast :breedtedeur_aangepast :breedtepupusetXY :X+(:breedte/4*3)+(4/5*(:breedte/5)) setXY :X+(:breedte/4*3)+(4/5*(:breedte/5)) :Y+(1/2*(3*:breedte/2/4)):Y+(1/2*(3*:breedte/2/4))pdpdklink_aangepast :breedteklink_aangepast :breedtepupusetXY setXY :X :Y:X :Ypdpd

endend

Page 11: Logo

De procedure ‘huis’ met De procedure ‘huis’ met parametersparameters

Opgave 2:Opgave 2:

Maak de procedure raam_aangepast. Dit Maak de procedure raam_aangepast. Dit is een aanpassing van de procedure is een aanpassing van de procedure raam. Geef deze de parameters raam. Geef deze de parameters breedte van het huis, Xpositie en breedte van het huis, Xpositie en Ypositie mee. Een raam bepaalt zelf Ypositie mee. Een raam bepaalt zelf zijn positie binnen de muren van het zijn positie binnen de muren van het huis.huis.

Page 12: Logo

De procedure ‘huis’ met De procedure ‘huis’ met parametersparameters

Implementatie raam_aangepast:Implementatie raam_aangepast:

to raam_aangepast to raam_aangepast :breedte :X :Y:breedte :X :YpupusetXY :X+(1/5*(:breedte)) :Y+(:breedte/2/3)setXY :X+(1/5*(:breedte)) :Y+(:breedte/2/3)pdpdrepeat 2[fd repeat 2[fd 1/3*(:breedte/2)1/3*(:breedte/2) rt 90 fd rt 90 fd 1/3*:breedte1/3*:breedte rt 90] rt 90]pupurt 45rt 45fd 2fd 2setfc [128 128 255]setfc [128 128 255]fillfillbk 2bk 2rt -45rt -45setXY :X :YsetXY :X :Ypdpd

endend

Page 13: Logo

De procedure ‘huis’ met De procedure ‘huis’ met parametersparameters

Opgave 3:Opgave 3:

Maak een procedure muur_aangepast. Maak een procedure muur_aangepast. Deze is een aanpassing van de Deze is een aanpassing van de procedure muur. Geef hem de procedure muur. Geef hem de parameters breedte van het huis, parameters breedte van het huis, Xpositie, Ypositie en kleur mee.Xpositie, Ypositie en kleur mee.

to muur :breedt :X :Y :kleurto muur :breedt :X :Y :kleur

Gebruik ‘setfc :kleur’Gebruik ‘setfc :kleur’

Page 14: Logo

De procedure ‘huis’ met De procedure ‘huis’ met parametersparameters

Implementatie muur_aangepast:Implementatie muur_aangepast:

to muur_aangepast to muur_aangepast :breedte :X :Y :kleur:breedte :X :Y :kleurcscspupusetXY :X :YsetXY :X :Ypdpdrepeat 2[fd repeat 2[fd :breedte/2:breedte/2 rt 90 fd rt 90 fd :breedte:breedte rt 90] rt 90]pupurt 45rt 45fd 2fd 2setfc setfc :kleur:kleurfillfillbk 2bk 2rt -45rt -45pdpd

endend

Page 15: Logo

De procedure ‘huis’ met De procedure ‘huis’ met parametersparameters

Opgave 4: Schrijf de procedure Opgave 4: Schrijf de procedure muur_deur_raam. Deze is een muur_deur_raam. Deze is een aanpassing van de procedure aanpassing van de procedure muur_met_deur_met_raam. Geef weer muur_met_deur_met_raam. Geef weer de nodige parameters mee.de nodige parameters mee.

Page 16: Logo

De procedure ‘huis’ met De procedure ‘huis’ met parametersparameters

Implementatie muur_deur_raam:Implementatie muur_deur_raam:

to muur_deur_raam :breedte :X :Y :kleurto muur_deur_raam :breedte :X :Y :kleurmuur_aangepast :breedte :X :Y :kleurmuur_aangepast :breedte :X :Y :kleurdeur_met_klink_aangepast :breedte :X :Ydeur_met_klink_aangepast :breedte :X :Yraam_aangepast :breedte :X :Yraam_aangepast :breedte :X :YpupusetXY :X :YsetXY :X :Ypdpd

endend

Page 17: Logo

De procedure ‘huis’ met De procedure ‘huis’ met parametersparameters

Opgave 5a:Opgave 5a:

Maak de procedure dak_aangepast. Dit Maak de procedure dak_aangepast. Dit is een aanpassing op de procedure is een aanpassing op de procedure dak. Geef de breedte van het huis dak. Geef de breedte van het huis mee, de Xpositie, de Ypositie en de mee, de Xpositie, de Ypositie en de kleur van het dak. Het dak bepaalt ook kleur van het dak. Het dak bepaalt ook zijn eigen positie t.o.v. de muur. Neem zijn eigen positie t.o.v. de muur. Neem als lengte voor de kleine basis van de als lengte voor de kleine basis van de trapezium 3/4de van de grote basistrapezium 3/4de van de grote basis

Page 18: Logo

De procedure ‘huis’ met De procedure ‘huis’ met parametersparameters

(X, Y)(X, Y)

(0, 0)(0, 0)

breedtebreedte

Breedte/Breedte/22

¾*(breedte¾*(breedte))

(Breedte-(Breedte-(¾*breedte)) /2(¾*breedte)) /2

Breedte/4Breedte/4

(X, Y+ breedte/2)

(X+breedte, Y+ breedte/2)

(X+ (Breedte-(¾*breedte)) /2+ (Breedte-(¾*breedte)) /2+ (¾*breedte),(¾*breedte), Y+ breedte/2+breedte/4)

(X+ (Breedte-(¾*breedte)) /2,(Breedte-(¾*breedte)) /2, Y+ breedte/2+breedte/4)

Page 19: Logo

De procedure ‘huis’ met De procedure ‘huis’ met parametersparameters

Implementatie dak_aangepastImplementatie dak_aangepast

to dak_aangepast to dak_aangepast :breedte :X :Y :kleur:breedte :X :Y :kleurpupusetXY :X :Y+(:breedte/2)setXY :X :Y+(:breedte/2)pdpdsetXY :X+(:breedte-(3*:breedte)/4)/2 :Y+(:breedte/2)+(:breedte/4)setXY :X+(:breedte-(3*:breedte)/4)/2 :Y+(:breedte/2)+(:breedte/4)setXY :X+(:breedte-(3*:breedte)/4)/2+(3/4*:breedte) :Y+(:breedte/2)+setXY :X+(:breedte-(3*:breedte)/4)/2+(3/4*:breedte) :Y+(:breedte/2)+(:breedte/4)(:breedte/4)setXY :X+:breedte :Y+:breedte/2setXY :X+:breedte :Y+:breedte/2setXY :X :Y+(:breedte/2)setXY :X :Y+(:breedte/2)pupurt 60rt 60fd 2fd 2setfc setfc :kleur:kleurfillfillbk 2bk 2rt -60rt -60setXY :X :YsetXY :X :Ypdpd

endend

Page 20: Logo

De procedure ‘huis’ met De procedure ‘huis’ met parametersparameters

Opgave 5b:Opgave 5b:Schrijf de procedure Schrijf de procedure

schoorsteen_aangepast.Deze is een aanpassing schoorsteen_aangepast.Deze is een aanpassing van de procedure schoorsteen. Zorg ervoor dat van de procedure schoorsteen. Zorg ervoor dat de schoorsteen zichzelf de juiste positie en de schoorsteen zichzelf de juiste positie en grootte toekent. Deze krijgt ook de parameters grootte toekent. Deze krijgt ook de parameters breedte, Xpositie, Ypositie en kleur mee. De breedte, Xpositie, Ypositie en kleur mee. De kleur is dezelfde als die van de muren.kleur is dezelfde als die van de muren.

(¾*breedte)(¾*breedte)))

(1/15*breedte)(1/15*breedte)

(1/20*breedte)(1/20*breedte)

Page 21: Logo

De procedure ‘huis’ met De procedure ‘huis’ met parametersparameters

Implementatie schoorsteen_aangepastImplementatie schoorsteen_aangepast

to schoorsteen_aangepast to schoorsteen_aangepast :breedte :X :Y :kleur:breedte :X :Y :kleurpupusetXY :X+(3/4*:breedte) :Y+(:breedte/2)+(:breedte/4)setXY :X+(3/4*:breedte) :Y+(:breedte/2)+(:breedte/4)pdpdrepeat 2[fd repeat 2[fd 1/15*:breedte1/15*:breedte rt 90 fd rt 90 fd 1/10*:breedte1/10*:breedte rt 90] rt 90]pupurt 45rt 45fd 2fd 2setfc setfc :kleur:kleurfillfillbk 2bk 2rt -45rt -45pdpd

endend

Page 22: Logo

De procedure ‘huis’ met De procedure ‘huis’ met parametersparameters

Opgave 5c:Opgave 5c:Maak de procedure Maak de procedure

dak_met_schoorsteen_aangepast. Dit is een dak_met_schoorsteen_aangepast. Dit is een aanpassing van de procedure aanpassing van de procedure dak_met_schoorsteen. Welke parameters dak_met_schoorsteen. Welke parameters moeten hier worden meegegeven?moeten hier worden meegegeven?

Opgave 6: Maak de procedure Opgave 6: Maak de procedure huis_aangepast. Dit is een aanpassing van huis_aangepast. Dit is een aanpassing van de procedure huis. Vergeet niet je turtle te de procedure huis. Vergeet niet je turtle te laten verdwijnen.laten verdwijnen.

Page 23: Logo

De procedure ‘huis’ met De procedure ‘huis’ met parametersparametersImplementatie dak_met_schoorsteen_aangepast:Implementatie dak_met_schoorsteen_aangepast:

to dak_met_schoorsteen_aangepast :breedte :X :Y :huiskleur :dakkleurto dak_met_schoorsteen_aangepast :breedte :X :Y :huiskleur :dakkleur

dak_aangepast :breedte :X :Y :dakkleurdak_aangepast :breedte :X :Y :dakkleur

schoorsteen_aangepast :breedte :X :Y :huiskleurschoorsteen_aangepast :breedte :X :Y :huiskleur

pupu

setXY :X :YsetXY :X :Y

pdpd

endend

Implementatie huis_aangepast:Implementatie huis_aangepast:

to huis_aangepast :breedte :X :Y :huiskleur :dakkleurto huis_aangepast :breedte :X :Y :huiskleur :dakkleur

muur_deur_raam :breedte :X :Y :huiskleurmuur_deur_raam :breedte :X :Y :huiskleur

dak_met_schoorsteen_aangepast :breedte :X :Y :huiskleur :dakkleurdak_met_schoorsteen_aangepast :breedte :X :Y :huiskleur :dakkleur

HTHT

endend

Page 24: Logo

Een dorp bouwenEen dorp bouwen

De procedure dorp: De procedure dorp:

- kies je eigen achtergrondkleur- kies je eigen achtergrondkleur

- Roep een aantal keer de procedure - Roep een aantal keer de procedure huis_aangepast op met verschillende huis_aangepast op met verschillende parametersparameters

- Voeg er eventueel nog een zonnetje, - Voeg er eventueel nog een zonnetje, een boompje of een weggetje bij.een boompje of een weggetje bij.

Page 25: Logo

Een dorp bouwenEen dorp bouwen

Implementatie van een dorpImplementatie van een dorp

to dorpto dorpsetSC [210 250 200]setSC [210 250 200]huis_aangepast 380 -500 -100 [255 0 0] [128 0 128]huis_aangepast 380 -500 -100 [255 0 0] [128 0 128]huis_aangepast 250 -100 -30 [255 50 70] [180 0 180]huis_aangepast 250 -100 -30 [255 50 70] [180 0 180]huis_aangepast 200 150 -50 [255 23 14] [0 200 255]huis_aangepast 200 150 -50 [255 23 14] [0 200 255]huis_aangepast 100 130 150 [255 0 0] [25 255 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 70 230 225 [100 70 35] [200 70 40]huis_aangepast 120 230 120 [25 200 87] [0 98 43]huis_aangepast 120 230 120 [25 200 87] [0 98 43]huis_aangepast 70 10 215 [25 0 87] [10 98 30]huis_aangepast 70 10 215 [25 0 87] [10 98 30]huis_aangepast 60 80 225 [250 200 200] [0 98 150]huis_aangepast 60 80 225 [250 200 200] [0 98 150]

endend

Page 26: Logo

ConclusieConclusie

Om een dorp te tekenen hadden we een huis nodig met Om een dorp te tekenen hadden we een huis nodig met parameters. Zo konden we op verschillende posities huizen parameters. Zo konden we op verschillende posities huizen plaatsen met verschillende kleuren en groottes. plaatsen met verschillende kleuren en groottes.

Het huis met parameters zijn we bekomen uit een huis zonder Het huis met parameters zijn we bekomen uit een huis zonder parameters. parameters.

Het huis zonder parameters was opgesplitst in deelproblemen. Zo Het huis zonder parameters was opgesplitst in deelproblemen. Zo moesten we enkel, met wat logische denkwerk, eenvoudige moesten we enkel, met wat logische denkwerk, eenvoudige procedures aanpassen.procedures aanpassen.

Het huis met parameters was dus ook opgesplitst in Het huis met parameters was dus ook opgesplitst in deelproblemen. Elk deelprobleem zorgde zelf voor zijn positie, deelproblemen. Elk deelprobleem zorgde zelf voor zijn positie, grootte en kleur. Als we dan bijvoorbeeld een deur aan de grootte en kleur. Als we dan bijvoorbeeld een deur aan de linkerkant van het huis willen of een puntdak willen tekenen, linkerkant van het huis willen of een puntdak willen tekenen, moeten we enkel aan 1 eenvoudige procedure veranderingen moeten we enkel aan 1 eenvoudige procedure veranderingen aanbrengen. aanbrengen.

We hebben geleerd dat, door stapsgewijs een groot probleem op We hebben geleerd dat, door stapsgewijs een groot probleem op te splitsen in deelproblemen en deze deelproblemen eventueel te splitsen in deelproblemen en deze deelproblemen eventueel nog te verfijnen totdat ze overeenstemmen met een reeds nog te verfijnen totdat ze overeenstemmen met een reeds gekende procedure of een commando, we niet alleen ons gekende procedure of een commando, we niet alleen ons probleem vereenvoudigen, maar ook toekomstige probleem vereenvoudigen, maar ook toekomstige veranderingen gemakkelijk maken. veranderingen gemakkelijk maken.