Recursieve boom

Het patroon van vertakkingen heeft bij veel planten een fractale structuur: de kleinere delen lijken op miniatuur kopieën van de hele plant.

Een fractaal is een patroon dat zich oneindig herhaalt. Het bestaat uit meerdere kopieën of kleine variaties van dezelfde vorm. In deze afbeelding heeft de groene tak ongeveer dezelfde vorm als het hele plaatje.
Geen Afbeelding
In deze les, ga je een boom bouwen met blokken binnen blokken om takken te maken. Elke tak wordt in essentie een kleinere kopie van dezelfde boom.

    "H7L1-Boom"Geen Afbeelding
  1. Bouw het eerste niveau:
    1. Maak dit Geen Afbeelding blok:
      Geen Afbeelding
      Dit ziet er erg simpel uit, maar het wordt straks lastiger.
    2. Laat de sprite naar boven wijzen, zet de pen neer en voer Geen Afbeelding uit. Dit zou het resultaat moeten zijn::
      Geen Afbeelding
    3. Geen Afbeelding Waar begint je sprite? Welke kant wijst hij op? Waar stopt hij?
  2. boom 1 gebruiken om de takken van boom 2 te tekenen is een vorm van abstractie.
  3. Bouw Geen Afbeelding die gebruikt maakt van Geen Afbeelding voor z'n zijtakken.
    Geen Afbeelding
  4. Schrijf de exacte plaats en richting op van de sprite op het moment dat de eerste boom 1 stopt. Waarom is dat belangrijk voor boom 2 om te werken?
Staat-transparantie - alles (sprite, pen, enzovoort) precies terugzetten zoals aan het begin - is belangrijk als je blok afhankelijk is van andere blokken. Meestal betekent dit dat je de sprite op dezelfde plek en richting moet terugzetten en de pen op dezelfde kleur en grootte als aan het begin.
  1. Maak een boom 3blok dat het boom 2blok gebruikt als zijtakken.
  2. Maak een boom 4blok dat het boom 3blok gebruikt als zijtakken.
  3. Als je het leuk vindt, maak dan ook een boom 5blok waarin je het boom 4blok gebruikt. Geen Afbeelding uitvoeren moet het volgende resultaat leveren::
    Geen Afbeelding Geen Afbeelding

Deze blokken zien er allemaal hetzelfde uit, behalve dat boom 5 gebruik maakt van boom 4, terwijl boom 4 gebruik maakt van boom 3, enzovoorts. We kunnen ons afvragen of we al deze blokken kunnen vervangen door een enkel boomblok, waarbij een parameter het veranderende aantal aangeeft.

Als je een blok in zichzelf gebruikt, heet dat recursie.
  1. Hier zie je het algemene idee voor de recursieve versie van boom. Probeer dit zelf te maken:
    Geen Afbeelding
  2. Voer nu boom niveau 9 grootte: 50 uit. Het werkt nog niet. Dit is wat je ziet:
    Geen Afbeelding
  3. Geen Afbeelding Probeer de fout in het script te vinden. Wat gaat er mis?
Terug Volgende