Do Now!
Wie würden Sie die Titelgrafik mit vier eigenen Funktionen erstellen?
Ein Gänseblümchen (3. Funktion) besteht aus weissen Blättern (2. Funktion) und einem gelben Blütenstand (1. Funktion). Die Blätter sind als Rosette (alle ums Zentrum herum) arrangiert.
Blütenstand
Ergänzen Sie die Funktion, die einen gelben Blütenstand mit gegebenem Durchmesser erzeugt.
Tipps
- Unter dem Namen
GELB
ist bereits eine warme gelbe Farbe definiert.
- Ersetzen Sie
pass
mit Ihrem Code. pass
ist hier ein Platzhalter für zukünftigen Code, pass
selbst macht nichts.

Testen Sie die Funktion, indem Sie einen Blütenstand mit Durchmesser 100 erzeugen und ausgeben:
Do Now!
Fertig? Schauen Sie sich die Farbdefinition nochmals an. Was ist anders?
Farben mit HSL
Vielleicht haben Sie es bemerkt: Für die Farbe haben wir einen neuen PyTamaro-Befehl benutzt. Bisher haben wir immer rgb_color verwendet, um eigene Farben zu erstellen. Es wird Zeit, eine neue Methode kennenzulernen, z. B. hsl_color.

HSL-Farben brauchen 3-4 Argumente:
- hue: Farbton, z. B. 0 für Rot, 180 für cyan, 120 für green etc.
- saturation: Sättigung, also wie stark die Farbe ist.
- lightness: Helligkeit, Farben mit einem Helligkeitswert von 0.5 sind weder weiss (0) noch schwarz (1)
- opacity: Opazität (Transparenz), 0 bedeutet vollständig durchsichtig; 0.5 bedeutet, dass die Fläche halb durchsichtig ist.
Blütenblatt
Benutzen Sie eine HSL-Farbe bei der Implementation der Funktion blatt
, die ein Blatt der gegebenen Länge erzeugt.

Tipps
Verwenden Sie hsl_color, um die Blütenblätterfarbe WEISS
zu erstellen:
- hue: 58
- saturation: 0.2
- lightness: 0.98
- opacity: 1
Die Höhe eines Blatts ist ein Viertel seiner Länge.
Testen Sie Ihre Funktion mit folgenden zwei Aufrufen. Es sollen zwei verschieden grosse Blütenblätter ausgegeben werden.
Verfeinern
Do Now!
Welche Eigenschaft müssen Sie den Blütenblättern noch hinzufügen, um sie zur Rosette arrangieren zu können?
Die Blütenblätter sollen noch eine pin-position erhalten: center_left.

Ergänzen Sie Ihre Funktion blatt
oben mit dieser pin-position.
Überprüfen Sie, ob mit folgendem Befehl die richtige pin-position angezeigt wird.
Do Now!
Bereit für den nächsten Schritt?
Blattrosette
Stop and think
Sie werden eine Funktion blattrosette
schreiben, die eine Rosette mit dem gegebenen durchmesser
bestehend aus der gegebenen anzahl
Blättern erzeugt. Aber um wie viel muss sich ein Blatt drehen, wenn sich die Anzahl Blätter bei jedem Aufruf ändern kann? Oder in anderen Worten: Wie gross ist der Winkel zwischen zwei Blättern?
Blattzwischenwinkel
Grafik | Anzahl Blätter | Blattzwischenwinkel |
---|
 | 3 | 120.0 |
 | 6 | ? |
 | 9 | ? |
 | 11 | ? |
Do Now!
Wie gross sind die Blattzwischenwinkel in den Beispielen oben? Wie lautet die Formel?
Anzahl Blätter | Blattzwischenwinkel |
---|
3 | 120.0 |
6 | 60.0 |
9 | 40.0 |
11 | 32.72727... |
Formel: winkel == 360 / anzahl
Rotationsformel
Wenn die Blattrosette 6 Blätter haben soll, wird die Blume wie in der Tabelle aufgebaut: Bei jedem Schleifendurchlauf wird je ein Blütenblatt hinzugefügt.
i
ist die Indexvariable der Schleife.
i == 0 | i == 1 | i == 2 | i == 3 | i == 4 | i == 5 |
---|
winkel == 0 | winkel == ? | winkel == ? | winkel == ? | winkel == ? | winkel == ? |
 |  |  |  |  |  |
Do Now!
Jedes neue Blatt, das hinzugefügt wird, hat einen grösseren Rotationswinkel als vorher hinzugefügte. Um wie viel dreht sich jedes Blatt, bevor es der Rosette zugefügt wird? Wie lautet die allgemeine Formel?
i == 0 | i == 1 | i == 2 | i == 3 | i == 4 | i == 5 |
---|
winkel == 0 | winkel == 60 | winkel == 120 | winkel == 180 | winkel == 240 | winkel == 300 |
 |  |  |  |  |  |
Allgemeine Formel: winkel == 360 / anzahl * i
Funktion Blattrosette
Zeichnen Sie nun die Blattrosette mit rotate, compose und einer Schleife mit der Laufvariable i
.
Testen Sie Ihre Funktion mit folgenden zwei Testaufrufen. Werden zwei verschieden grosse Blattrosetten mit je 11 oder 13 Blättern ausgegeben?
Margritli
Implementieren Sie die Funktion margritli
, welche ein Gänseblümchen konstruiert. Der Durchmesser des Blütenstands soll durchmesser / 3
sein.

Toolbox
Nehmen Sie die Funktion(en) in Ihre Toolbox auf.
Was Sie gelernt und geübt haben
Allgemein
- Sie können gut lesbaren, strukturierten und modularisierten Programmiercode schreiben.
- Sie können bestehende Programme sinnvoll abändern und erweitern.
- Sie können Befehlssequenzen manuell (Schritt-für-Schritt) durchführen und das Ergebnis bestimmen.
- Sie können Probleme lösen, indem Sie diese in Teilprobleme zerlegen.
Python
- Sie können Akkumulatoren und Laufvariablen in Schleifen verwenden, um sich leicht ändernde Elemente dem Akkumulator anzufügen.
- Sie können eigene Funktionen in Schleifen aufrufen.
- Sie können die Indexvariable verwenden, um bei jedem Schleifendurchlauf einen neuen Wert zu berechnen.
PyTamaro
- Sie erkennen den Befehl
hsl_color
und seine vier Parameter.