Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
lehrkraefte:blc:informatik:glf22:turtle [2023/01/24 07:01] Ivo Blöchliger [Koch-Kurve] |
lehrkraefte:blc:informatik:glf22:turtle [2023/01/27 09:22] (current) Ivo Blöchliger [Pythagorasbaum] |
||
---|---|---|---|
Line 198: | Line 198: | ||
Die Funktion nimmt folgende Parameter entgegen: | Die Funktion nimmt folgende Parameter entgegen: | ||
* Eine Turtle '' | * Eine Turtle '' | ||
- | * Einen Winkel '' | + | * Einen Winkel '' |
- | * Die Turtle startet bei «Start» und muss am Ende bei «Ende» sein. Die Schrittlänge '' | + | * Die Turtle startet bei «Start» und muss am Ende bei «Ende» sein. Die Schrittlänge '' |
+ | * Sie können dazu auch die Turtle-Methoden '' | ||
- | Hinweis: Sie können die Kathetenlängen mit trigonometrischen Funktionen berechnen. | + | Hinweis: Sie können die Kathetenlängen mit trigonometrischen Funktionen |
</ | </ | ||
Line 208: | Line 209: | ||
Erweitern Sie Ihre Funktion so, dass ein zusätzlicher Parameter '' | Erweitern Sie Ihre Funktion so, dass ein zusätzlicher Parameter '' | ||
* Ist die '' | * Ist die '' | ||
- | * Sonst wird anstelle des Zeichnens Katheten die Funktion selbst mit '' | + | * Sonst wird anstelle des Zeichnens |
+ | * Probieren Sie verschiedene Winkel aus. | ||
+ | * Anstatt die '' | ||
+ | * Man erhält einen interessanten Baum, wenn man statt einen konstanten Winkel '' | ||
</ | </ | ||
+ | |||
+ | <hidden Lösungsvorschlag> | ||
+ | <code python> | ||
+ | from kroete import Kroete | ||
+ | from math import cos,sin,pi | ||
+ | |||
+ | |||
+ | |||
+ | def baum(t, winkel, stufe): | ||
+ | t.save() | ||
+ | for i in range(4): | ||
+ | t.forward() | ||
+ | t.left(90) | ||
+ | t.left(90) | ||
+ | t.move() | ||
+ | a = cos(winkel/ | ||
+ | b = sin(winkel/ | ||
+ | t.right(90-winkel) | ||
+ | t.r = a | ||
+ | if stufe==0 or (stufe<0 and t.r<3): | ||
+ | t.forward() | ||
+ | else: | ||
+ | baum(t, winkel, stufe-1) | ||
+ | t.right(90) | ||
+ | t.r = b | ||
+ | if stufe==0 or (stufe<0 and t.r<3): | ||
+ | t.forward() | ||
+ | else: | ||
+ | baum(t, winkel, stufe-1) | ||
+ | t.restore() | ||
+ | t.move() | ||
+ | |||
+ | |||
+ | |||
+ | t = Kroete() | ||
+ | t.y = -200 | ||
+ | t.x = 50 | ||
+ | t.r = 110 | ||
+ | baum(t, 30, -1) | ||
+ | </ | ||
+ | </ |