Opeenvolging van stappen die vanuit een gegeven beginsituatie leiden tot de oplossing
Probleem opsplitsen in deelproblemen
Die deelproblemen opnieuw opsplitsen in deelproblemen
Stapsgewijze verfijning of top-down methode
Probleemstelling
Ontwerp een molen met draaiende wieken
Molen bestaat uit een rechthoek, driehoek en 4 wieken
1 wiek : lijnstuk + een kleine rechthoek
to RECHTHOEK :LENGTE :BREEDTE
REPEAT 2[FD :LENGTE RT 90
FD :BREEDTE RT 90]
end
Gelijkzijdige driehoek met variabele zijde
to DRIEHOEK :ZIJDE
REPEAT 3[FD :ZIJDE RT 120]
end
4 wieken
rechthoek wiek 1 wiek :
to WIEK :WIEKLENGTE :WIEKBREEDTE :ARMLENGTE
FD :ARMLENGTE
RECHTHOEK :WIEKLENGTE :WIEKBREEDTE
BK :ARMLENGTE
end 4 wieken :
to 4_WIEKEN :WIEKLENGTE :WIEKBREEDTE :ARMLENGTE
REPEAT 4[WIEK :WIEKLENGTE :WIEKBREEDTE :ARMLENGTE RT 90]
end
rechthoek 150 80
Schildpad op goede positie plaatsen voor tekenen van dak (driehoek)
PU FD :150 PD
driehoek 80
Schildpad op goede postie plaatsen voor tekenen van de 4 wieken
LT 30 RT90 PU FD 40 LT 90 PD
4_wieken 40 20 75
Molen met variabele lengte
to MOLEN :LENGTE :BREEDTE :WIEKLENGTE WIEKBREEDTE
RECHTHOEK :LENGTE :BREEDTE
PU
FD :LENGTE
RT 30
PD
DRIEHOEK :BREEDTE
LT 30
RT 90
PU
FD :BREEDTE/2
LT 90
PD
4_WIEKEN :WIEKLENGTE :WIEKBREEDTE :LENGTE/2
PU
HOME
PD
end
Molen met draaiende wieken
wieken laten draaien door molen opnieuw te tekenen met wieken op andere positie
Clearscreen (of ook CS) verwijdert alles
molen zonder wieken + 4 wieken
Molen zonder wieken
to MOLEN_ZONDER_WIEKEN :LENGTE :BREEDTE
RECHTHOEK :LENGTE :BREEDTE
PU
FD :LENGTE
RT 30
PD
DRIEHOEK :BREEDTE
LT 30
RT 90
PU
FD :BREEDTE/2
LT 90
PD
end
Molen met draaiende wieken
Hoek vermeerderen met 15 graden en opnieuw tekenen
to DRAAIENDE_MOLEN :LENGTE :BREEDTE :WIEKLENGTE :WIEKBREEDTE
MAKE ¨HOEK 0
REPEAT 50[CS MOLEN_ZONDER_WIEKEN :LENGTE :BREEDTE
RT :HOEK4_WIEKEN :LENGTE_WIEK :BREEDTE_WIEK :LENGTE/2 MAKE ¨HOEK :HOEK+15]
end
Dit gaat heel snel. Vertragen door commando wait.
to DRAAIENDE_MOLEN :LENGTE :BREEDTE :WIEKLENGTE :WIEKBREEDTE
MAKE ¨HOEK 0
REPEAT 300[CS MOLEN_ZONDER_WIEKEN :LENGTE :BREEDTE
RT :HOEK 4_WIEKEN :LENGTE_WIEK :BREEDTE_WIEK :LENGTE/2
WAIT 1 MAKE ¨HOEK :HOEK+1]
end
1 schoonheidsfoutje : hideturtle (ht)
Extra : zon toevoegen
Maken van een cirkel
Verplaatsen van cirkel (procedure verplaats_cirkel)
Verplaats_cirkel invoegen
in draaiende_molen
Tips : 2 eigenschappen van een cirkel:
De hoekpunten van een regelmatige n-hoek liggen op dezelfde cirkel (de omgeschreven cirkel).
De omtrek van de cirkel is
Extra oef: zon toevoegen
1 ste methode:
edit ¨VEELHOEK :AANTAL
to VEELHOEK :AANTAL :LENGTE
REPEAT :AANTAL[FD :LENGTE RT 360/:AANTAL]
end
VEELHOEK 20 10
Extra oef: zon toevoegen
2 de methode:
edit ¨CIRKEL :STRAAL
to CIRKEL :STRAAL
REPEAT 40[FD 3.1415*:STRAAL/20 RT 9]
end
STRAAL 10
Molen met zon en draaiende wieken
Zon verplaatsen: edit¨VERPLAATS_CIRKEL
to VERPLAATS_CIRKEL :LENGTE :BREEDTE
PU
HOME
RT 90
FD 2*:BREEDTE
LT 90
FD :BREEDTE+:LENGTE
PD
CIRKEL:BREEDTE/4
end
Molen met zon en draaiende wieken
Zon verplaatsen invoegen in draaiende molen
to DRAAIENDE_MOLEN :LENGTE :BREEDTE :WIEKLENGTE :WIEKBREEDTE
MAKE ¨HOEK 0
REPEAT 300[CS MOLEN_ZONDER_WIEKEN :LENGTE :BREEDTE RT :HOEK 4_WIEKEN :LENGTE_WIEK :BREEDTE_WIEK :LENGTE/2 VERPLAATS_CIRKEL :LENGTE :BREEDTE WAIT 1 MAKE ¨HOEK HOEK+1]
end
Samenvatting
Groot probleem opsplitsen in deelproblemen.
Top down of stapsgewijze vereenvoudiging maakt probleem veel eenvoudiger!
Comments