Ga naar hoofdinhoud

Stap 1: Een ring van cirkels (for-loop)

info

Dit project komt na Tekenen met turtle: je tekent met commando's die je daar hebt geleerd. forward en left ken je uit Een schildpad die tekent, circle uit Een zon. Nieuw uit de cursus is in deze stap de for-loop, uit For-loop.

Teken een vorm, draai een klein stukje, en teken hem nog een keer. Doe dat vaak genoeg, en er ontstaat een patroon dat er veel ingewikkelder uitziet dan de code die het maakt. Zo werkt een spirograaf. In zes stappen bouw je er zelf een, met kleuren, andere vormen en een spiraal die groeit.

Je begint met cirkels. Vier cirkels, met na elke cirkel een kwartslag draaien, geven een klavertje vier:

import turtle

for i in range(4):
turtle.circle(100)
turtle.left(90)

De schildpad begint in het punt waar de vier cirkels elkaar raken, en elke cirkel begint en eindigt daar. Na de cirkel draait de schildpad 90 graden, dus de volgende cirkel ligt een kwartslag verder. Vier keer 90 graden is precies één keer rond.

Opdracht: 36 cirkels​

Teken 36 cirkels met een straal van 100. Draai na elke cirkel 10 graden naar links.

Een ring van 36 zwarte cirkels die allemaal door het middelpunt van de tekening gaan, samen een ronde rozet

import turtle
Klik hier voor een tip.

Begin met het klavertje hierboven. Wat moet er anders, zodat de loop 36 keer gaat en de schildpad steeds 10 graden draait? Na 36 keer 10 graden is hij weer precies rond, net als bij het klavertje.

Klik hier voor de oplossing.
import turtle

for i in range(36):
turtle.circle(100)
turtle.left(10)

De cirkels overlappen elkaar zo vaak dat er nieuwe vormen tussen lijken te staan: kleine ruitjes, en bogen die van het midden naar buiten draaien. Die heb je niet getekend. Ze ontstaan vanzelf.

Er gaat iets mis​

import turtle

for i in range(36):
turtle.circle(100)
turtle.left(10)

Je verwacht een ring, maar je ziet één cirkel.

Oorzaak: turtle.left(10) springt niet in, dus hij hoort niet bij de loop. De schildpad tekent 36 keer dezelfde cirkel, precies over elkaar heen, en draait pas als de loop klaar is.

Oplossing: laat de regel met left net zo ver inspringen als de regel met circle.

In de volgende stap bouw je verder op dit programma. Kopieer je programma voordat je verdergaat: de editor bewaart het niet.

Door naar stap 2: kleuren uit een lijst.