At My Fingertips
Rapid Playground
Wir erstellen zuerst ein stilles Windrad, dann erst animieren wir es:
Um ein stilles Windrad zu erstellen, brauchen wir nur drei Funktionen:
No. | Funktion | Grafik |
---|---|---|
1 | def zacken(radius: float, farbton: int) -> Graphic: | |
2 | def kopf(radius: float) -> Graphic: | |
3 | def windrad_still(radius: float) -> Graphic: |
Erstellen Sie eine Funktion, die Zacken verschiedener Grössen und Farbtöne erstellen kann:
radius
stell die Länge der Hypothenuse des grossen Dreiecks dar undradius / 2
ist die Seite des Quadrats im Hintergrund.Für die Farben verwenden wir die Funktion hsv_color mit folgenden Argumenten:
Die Pin-Position soll unten links sein.
def zacken(radius: float, farbton: int) -> Graphic:
quadrat = rectangle(radius / 2, radius / 2, hsv_color(farbton, 0.5, 1))
dr_klein = triangle(radius / 2, radius / 2, 90, hsv_color(farbton, 1, 1))
dreieck = beside(rotate(90, dr_klein), dr_klein)
return compose(pin(bottom_left, dreieck), pin(bottom_left, quadrat))
Kombinieren Sie vier Zacken zu einem Windradkopf. Fügen Sie einen Knopf in der Mitte hinzu.
def kopf(radius: float) -> Graphic:
start_farbton = START_FARBTON
akk = circular_sector(radius * 0.07, 360, BRAUN)
for farbton in range(start_farbton, 360, 90):
akk = compose(
rotate(90, akk),
zacken(radius, farbton)
)
return akk
Kombinieren Sie nun den Kopf, leicht gedreht, mit einem Stab. Fügen Sie nach eigenem Belieben Hintergrund hinzu.
def windrad_still(radius: float) -> Graphic:
stab_hoehe = radius * 2.5
kopf_gedreht = rotate(15, kopf(radius)) # leicht gedreht
stab = pin(top_center, rectangle(stab_hoehe * 0.03, stab_hoehe, BRAUN))
return compose(kopf_gedreht, stab)
Nehmen Sie Ihre Funktion in Ihre Toolbox auf.
Anstatt dass wir ein statisches Windrad erstellen, können wir es auch animieren. Ergänzen Sie dazu noch folgende Funktion:
kopf_rotiert = rotate(winkel, kopf(radius))
Nehmen Sie auch diese Funktion in Ihre Toolbox auf.
for
-Schleifen verwenden.This activity has been created by Gall and is licensed under CC BY-SA 4.0.
It is derived from this activity and this activity.
Windrad
PyTamaro is a project created by the Lugano Computing Education Research Lab at the Software Institute of USI
Privacy Policy • Platform Version 0d7866a (Fri, 20 Dec 2024 07:46:38 GMT)