At My Fingertips

Zerlegen

Primitiven

  • ellipse oder circular_sector
    • Kopf
    • Bauch
    • Knöpfe
    • Augen
    • Mund
  • triangle
    • Nase
  • rectangle
    • Hintergrund

Vorgehen

Bei grösseren Projekten ist es meist eine gute Methode, zuerst die Grobstrukturen zu legen und dann erst weiter zu verfeinern. So haben auf jeden Fall alle ein Produkt (den Schneemann) und jede*r kann danach selbst bestimmen, was und wie weit man noch verfeinern will.

Beim Basisschneemann bauen wir

  1. die zwei Schneebälle: Kopf und Bauch,
  2. legen diese dann aufeinander und
  3. stellen Sie vor den Hintergrund.

Schneemann_basic

Basisschneemann

Bauen Sie den Basisschneemann: Ersetzen Sie ... und # TODO mit Ihrem Code.

Der Beispielschneemann benutzt folgende Dimensionen und RGB-Werte:

  • kopfdurchmesser = 200p
  • bauchdurchmesser = 200p * 1.5
  • hintergrundbreite = 200p * 2
  • hintergrundhöhe = 200p * 3
  • RGB-Werte für die Schneefarbe: 243, 243, 234
  • RGB-Werte für die Hintergrundfarbe: 100, 200, 250

Kommentare zu den Dimensionen

Das p in 200p dürfen Sie im Code nicht schreiben, es steht für die grafische Einheit Pixel. 200 * 1.5 bedeutet auch, dass Python für Sie rechnet.

Loading...
Um die Musterlösung zu sehen, klicken Sie links auf das schwarze Dreieck.
from pytamaro import(
    rgb_color, ellipse, rectangle,
    above, overlay,
    show_graphic
)
# Eingabe / Grundeinstellungen
farbe_schnee = rgb_color(243, 243, 234)
farbe_hintergrund = rgb_color(100, 200, 250)

kopf_durchmesser = 200
bauch_durchmesser = kopf_durchmesser * 1.5

# Eingabe / Basiselemente
kopf_basic = ellipse(kopf_durchmesser, kopf_durchmesser, farbe_schnee)
bauch_basic = ellipse(bauch_durchmesser, bauch_durchmesser, farbe_schnee)
hintergrund_basic = rectangle(
    kopf_durchmesser * 2, 
    kopf_durchmesser * 3, 
    farbe_hintergrund
)

# Verarbeitung: Zusammenbau (Kopf, Bauch, Hintergrund)
schneemann_basic = overlay(
    above(kopf_basic, bauch_basic),
    hintergrund_basic
)

# Ausgabe
show_graphic(schneemann_basic)

Variablen verwenden

kopf_durchmesser = 200
bauch_durchmesser = kopf_durchmesser * 1.5

bauch_durchmesser = kopf_durchmesser * 1.5 ist besser, wenn Sie die Grösse des Schneemanns später anpassen wollen. Stellen Sie sich vor, dass Sie ihren Schneemann noch in eine Schneelandschaft (mit Hügeln, verschneiten Bäumen, einem Häuschen etc.) einbauen wollen. Dann merken Sie aber, dass Ihr Schneemann viel zu gross ist. Anstatt jetzt bei jedem Grössenwert des Schneemanns eine kleinere Zahl hinzuschreiben, können Sie einfach bei beim bauch_durchmesser einmal die 200 mit 50 ersetzen. So einfach geht das dann.

Knöpfe

Benutzen Sie nun folgende Codefelder, um jeweils die Verziehrungseinzelteile herzustellen, dem Schneemann hinzuzufügen, und dann zu überprüfen.

Fügen Sie Knöpfe hinzu, mindestens 4; der Beispielschneemann hat:

  • 6 Knöpfe
  • Durchmesser: 200 / 10
  • Abstand: 200 / 10
  • RGB-Werte für die Knopffarbe: 50, 50, 50
Loading...
Loading...
Loading...
Loading...

Möchten Sie einen Tipp?

Für den Tipp zu unsichtbaren Abständen klicken Sie auf das schwarze Dreieck links.
  • Legen Sie eine folgender Figuren zwischen die Knöpfe, um einen unsichtbaren Abstand zu generieren
    • irgendeine Figur mit der Farbe transparent mit den richtigen Dimensionen
    • oder irgendeine Figur mit der richtigen Höhe aber einer Breite von 0
    • oder eine passende Figur in der Farbe des Hintergrunds

Zusatzfrage

Bei den Augen, aber auch beim Lächeln und der Nase, da man diese (z. B. mittels unsichtbaren Zusatzgrafiken) etwas herumschieben muss. Zudem müssen Sie ja die Augen und den Mund noch etwas versetzt auf den Kopf setzen, da können Sie auch die gleichen Tricks brauchen.

Um die Musterlösung (mit Verdopplung) zu sehen, klicken Sie links auf das schwarze Dreieck.
from pytamaro import transparent, above, magenta

# Grundeinstellungen
knopf_durchmesser = kopf_durchmesser / 10
knopf_farbe = rgb_color(50, 50, 50)
knopf = ellipse(knopf_durchmesser, knopf_durchmesser, knopf_farbe)
knopf_abstand = ellipse(knopf_durchmesser, knopf_durchmesser, transparent)

# Verarbeitung
k_ = above(knopf, knopf_abstand) # 1 Knopf über 1 Abstand
k_k_ = above(k_, k_) # 1x 'Kopf und Abstand' über 1x 'Kopf und Abstand'
k_k_k_ = above(k_k_, k_) # 2x 'Kopf und Abstand' über 1x 'Kopf und Abstand'
k_k_k_k_ = above(k_k_k_, k_) # 3x 'Kopf und Abstand' über 1x 'Kopf und Abstand'
k_k_k_k_k = above(k_k_k_k_, knopf) # 4x 'Kopf und Abstand' über 1 Knopf
knoepfe = k_k_k_k_k

bauch_und_knoepfe = overlay(knoepfe, bauch_basic)

# Ausgabe
show_graphic(bauch_und_knoepfe)
Um die Musterlösung (for-Schleife) zu sehen, klicken Sie links auf das schwarze Dreieck.
# Importe und Grundeinstellungen wie oben

k_ = above(knopf, knopf_abstand) # 1 Knopf über 1 Abstand
knoepfe = knopf # Knopfreihe mit 1 Knopf starten

for i in range(5):
    knoepfe = above(k_, knoepfe) # 5x einen Knopf mit Abstand hinzufügen

bauch_und_knoepfe = overlay(knoepfe, bauch_basic)

show_graphic(bauch_und_knoepfe)

Folgende Schneemannteile bieten keine Musterlösungen mehr.

Augen

Der Beispielschneemann hat:

  • Augenfarbe und -grösse identisch mit denen der Knöpfe
  • der Augenabstand ist auch identisch mit der Augengrösse
Loading...

Nase

Der Beispielschneemann benutzt:

  • Nasenseite = 200 / 2
  • Nasenspitz = 20°
  • RGB-Werte: 255, 163, 67
Loading...

Mund

Die Mundsteine sind nur 80% so gross wie die Knöpfe, haben aber dieselbe Farbe.

Loading...

Eigenes

Fügen Sie z. B. Hut, Arme, Füsse, Herz, Schal etc. hinzu. Viel Spass!

Schneemann_angezogen

Loading...

Lösungsstrategien

  • Sie können einfach Grafiken in einzelne Formen zerlegen.
  • Sie können Variablen benutzen, um Ihren Code übersichtlich und leichter veränderbar zu halten.
  • Sie können Variablen benutzen, um Codestücke wiederzuverwenden.
  • Sie können Probleme lösen, indem sie diese in Teilprobleme zerlegen.
  • Sie können gut lesbaren und strukturierten Programmiercode schreiben.

Python

  • Sie können einen Wert einer Variable mit = zuweisen und diese Variable weiterverwenden (Variablen als Zwischenspeicher).
  • Sie können Variablen verwenden, um neue Werte in deren Abhängigkeit zu berechnen.

PyTamaro

  • Sie können viele verschiedene Grafiken mit der PyTamaro-Bibliothek erstellen, vereinen und ausgeben.
  • Sie können unsichtbare Hilfsgrafiken benutzen, um sichtbare Grafiken zu positionieren.
  • Sie können mit der PyTamaro-Funktion rgb_color Grafiken in beliebigen Farben erstellen.

This activity has been created by Gall and is licensed under CC BY-SA 4.0.

It is derived from this activity.

Schneemann

Logo of PyTamaro

PyTamaro is a project created by the Lugano Computing Education Research Lab at the Software Institute of USI

Privacy PolicyPlatform Version c3a8286 (Mon, 14 Oct 2024 13:30:28 GMT)