190 likes | 358 Views
Tekenen van een draaiende molen in LOGO. Algoritme. 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.
E N D
Algoritme • 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
Vierhoek met variabele lengte en breedte 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 • 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
Molen • 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 • toVERPLAATS_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!