Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| lehrkraefte:snr:informatik:glf22:python:turtle [2022/11/22 17:37] – [Spirale zeichnen] Olaf Schnürer | lehrkraefte:snr:informatik:glf22:python:turtle [2023/01/13 21:13] (current) – [Stern zeichnen] Olaf Schnürer | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ~~NOTOC~~ | ||
| + | |||
| + | ====== Achtung ====== | ||
| + | |||
| + | <WRAP center round important> | ||
| + | Don't name your turtle program " | ||
| + | |||
| + | If there is any file in your python folder with this name, rename or delete it!((Otherwise importing the turtle library will not work!)) | ||
| + | </ | ||
| + | |||
| + | Falls es wirklich nicht in Visual Studio Code klappen sollte, hier sind etwas weniger komfortable Alternativen: | ||
| + | * Programm ausführen wie am Anfang dieses Kurses erklärt (wohl drei Alternativen: | ||
| + | * gesamtes Programm in die Python-Shell kopieren (Ctrl+a und Ctrl+c in VSCode, danach Ctrl+v in Python-Shell). Achtung bei Einrückungen (Schleifen, if-statements, | ||
| + | * Über ein Online-Tool, | ||
| + | * https:// | ||
| + | * https:// | ||
| + | Wer ein anderes brauchbares Online-Tool findet, teile mir dies bitte mit, damit ich es in die obige Liste aufnehme. | ||
| + | |||
| + | ====== Turtle-Grafik ====== | ||
| + | |||
| + | <WRAP center round info> | ||
| + | Turtle-Grafik meint, dass man mit einer " | ||
| + | </ | ||
| + | |||
| + | ===== Turtle-Befehle lernen und Haus des Nikolaus zeichnen ===== | ||
| + | |||
| + | <WRAP center round todo> | ||
| + | (1) Das folgende Programm vermittelt dir die wichtigsten Turtle-Befehle. Lass es laufen und verstehe, was welcher Befehl bewirkt! | ||
| + | <code python> | ||
| + | from turtle import * # Importiert die Turtle-Befehle | ||
| + | |||
| + | speed(1) | ||
| + | # Slowest animated speed ist 1; fastest animated speed is 10; | ||
| + | # even faster is speed 0, but then the turtle " | ||
| + | |||
| + | shape(" | ||
| + | # wie eine Schildkröte aussieht. Alternativen sind " | ||
| + | # " | ||
| + | a = 100 | ||
| + | |||
| + | forward(a) | ||
| + | left(60) | ||
| + | forward(a) | ||
| + | right(120) | ||
| + | forward(a) | ||
| + | left(60) | ||
| + | penup() | ||
| + | backward(0.5 * a) | ||
| + | pendown() | ||
| + | left(90) | ||
| + | pencolor(" | ||
| + | pensize(10) | ||
| + | left(60) | ||
| + | forward(a) | ||
| + | right(120) | ||
| + | forward(a) | ||
| + | left(60) | ||
| + | forward(a) | ||
| + | |||
| + | exitonclick() | ||
| + | # sondern erst nach Klick an beliebiger Stelle auf das Zeichenfenster. | ||
| + | </ | ||
| + | |||
| + | (2) Ändere das obige Programm so, dass das Haus des Nikolaus **mit Grundseite der Länge '' | ||
| + | |||
| + | Wenn man den Wert der Variablen '' | ||
| + | |||
| + | Das Dach soll rot gezeichnet werden, der Rest in einer anderen Farbe deiner Wahl, die Stiftdicke ist 10. Das Haus soll horizontal zentriert im Zeichenfenster erscheinen. | ||
| + | |||
| + | <hidden Hinweis: Wie man Wurzel zwei in Python eingibt.> | ||
| + | Für eine genaue Zeichnung benötigst du $\sqrt{2}=2^{0.5}$, | ||
| + | </ | ||
| + | |||
| + | {{: | ||
| + | </ | ||
| + | |||
| + | ===== Herz zeichnen ===== | ||
| + | |||
| + | <WRAP center round todo> | ||
| + | Verstehe das folgende Programm und schreibe dann ein neues Programm, das ein rot ausgefülltes Herz mit gelbem Rand der Dicke 10 zeichnet. Überlege dir zuerst auf einem Blatt Papier, wie du das Herz zeichnen willst. | ||
| + | |||
| + | {{: | ||
| + | |||
| + | <code python> | ||
| + | from turtle import * | ||
| + | speed(1) | ||
| + | shape(" | ||
| + | |||
| + | setheading(45) | ||
| + | |||
| + | pencolor(" | ||
| + | fillcolor(" | ||
| + | |||
| + | begin_fill() | ||
| + | forward(100) | ||
| + | circle(50, 90) # Zeichnet " | ||
| + | forward(100) | ||
| + | left(90) | ||
| + | forward(200) | ||
| + | circle(50, 180) | ||
| + | circle(-50, 90) # Da der Radius hier negativ ist, wird der Kreis " | ||
| + | end_fill() | ||
| + | |||
| + | exitonclick()</ | ||
| + | </ | ||
| + | |||
| + | ===== $n$-Eck zeichnen ===== | ||
| + | |||
| + | <WRAP center round todo> | ||
| + | (Benötigt for- oder while-Schleife - das im Hinweis Erklärte sollte ausreichen.) | ||
| + | |||
| + | Ergänze das folgende Programm so, dass ein '' | ||
| + | |||
| + | Teste dein Programm, indem du die Werte von '' | ||
| + | |||
| + | {{: | ||
| + | |||
| + | <hidden Hinweis> | ||
| + | Du musst eine Schleife verwenden. Eigentlich genügt es, das folgende zu wissen: | ||
| + | Das folgende Code-Block sorgt dafür, dass ... | ||
| + | <code python> | ||
| + | for i in range(n): | ||
| + | # ... aller Code, | ||
| + | # der wie dieser Kommentar | ||
| + | # um 4 Leerschläge | ||
| + | # eingerückt ist, | ||
| + | # n Mal ausgeführt wird. | ||
| + | </ | ||
| + | <hidden Wenn das nicht ausreicht:> | ||
| + | Schau dir den Anfang der Seite [[lehrkraefte: | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <hidden Hinweis zum Drehwinkel nach jeder Vorwärtsbewegung> | ||
| + | Um welchen Winkel hat sich die Turtle insgesamt gedreht, wenn sie das gesamte $n$-Eck gezeichnet hat und wie am Anfang ausgerichtet dasteht? | ||
| + | <hidden Antwort> | ||
| + | Einmal um die eigene Achse, also um $360^\circ$. Da sie sich $n$-mal um denselben Winkel gedreht hat, dreht sie sich nach | ||
| + | <hidden jeder Vorwärtsbewegung um ...> | ||
| + | $\frac{360^\circ}n$ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <code python> | ||
| + | from turtle import * | ||
| + | n = 7 | ||
| + | a = 100 | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ===== Spirale zeichnen ===== | ||
| + | |||
| + | <WRAP center round todo> | ||
| + | (Benötigt for- oder while-Schleife - eventuell ist das [[https:// | ||
| + | |||
| + | Schreibe ein Python-Programm, | ||
| + | |||
| + | Beispielsweise soll für '' | ||
| + | |||
| + | Kannst du am Ende die Gesamtlänge der gezeichneten Spirale ausgeben? (im normalen Terminal per '' | ||
| + | |||
| + | <WRAP center round box 100%> | ||
| + | {{: | ||
| + | </ | ||
| + | |||
| + | Zusatz: Ändere dein Programm so, dass die folgenden Bilder gezeichnet werden (" | ||
| + | |||
| + | <WRAP center round box 100%> | ||
| + | {{: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <WRAP center round todo> | ||
| + | Es folgen 5 von der Idee her jeweils gute, aber leider syntaktisch fehlerhafte Programme zum Zeichnen der Spirale wie oben gefordert (dreimal mit for-Schleife, | ||
| + | - {{ : | ||
| + | - {{ : | ||
| + | - {{ : | ||
| + | - {{ : | ||
| + | - {{ : | ||
| + | </ | ||
| + | |||
| + | ====== Bonus-Material ====== | ||
| + | |||
| + | Such dir aus den folgenden Aufgaben heraus, was dir gefällt! | ||
| + | |||
| + | <WRAP center round todo> | ||
| + | Male eine nette Zeichnung deiner Wahl mit der Turtle! | ||
| + | </ | ||
| + | |||
| + | ===== Stern zeichnen ===== | ||
| + | |||
| + | <WRAP center round todo> | ||
| + | (Nächstes Mal besser: Zwei Parameter, $n$ für ein $n$-Eck, auf dessen Ecken die Zacken liegen, und $m$ gibt an, wie viele Ecken man jeweils weiter geht. Drehwinkel ist $\frac{m \cdot 360^\circ}n$. (Lass einen Schüler dies für $n=5$ und $m=2$ ablaufen, andere zählen, um wieviel Grad er sich insgesamt gedreht hat.) | ||
| + | |||
| + | Zeichne einen Stern mit '' | ||
| + | |||
| + | <hidden Hinweis: Der Innenwinkel an jedem Zacken des Sterns beträgt ...> | ||
| + | $\frac{180^\circ}{n}$. | ||
| + | </ | ||
| + | |||
| + | {{: | ||
| + | </ | ||
| + | |||
| + | ==== Koordinatensystem ==== | ||
| + | |||
| + | <WRAP center round todo> | ||
| + | Die Turtle bewegt sich in einem Koordinatensystem (auch wenn wir das bisher nicht benutzt haben). | ||
| + | Beispielsweise kann man sie mit dem Befehl '' | ||
| + | |||
| + | Finde die maximalen und minimalen $x$- und $y$-Koordinaten heraus, die im Standardzeichenfenster sichtbar sind (du kannst beispielsweise ein möglichst grosses sichtbares Rechteck zeichnen). | ||
| + | </ | ||
| + | |||
| + | ==== Weitere Ideen (noch auszuformulieren) ==== | ||
| + | |||
| + | * Schreibe deinen Namen mit der Turtle! Schreibe eine Nutzereingabe (Text oder Zahl) per Turtle graphisch auf den Bildschirm. | ||
| + | * Zeichne die sogenannte [[https:// | ||
| + | * Wer die Grösse des Zeichenbereichs kennt: Male grosses Rechteck und lass die Turtle darin wie einen Gummiball herum" | ||
| + | * (braucht wohl Funktionen, da Aufruf per '' | ||
| + | |||
| + | ===== Wer mehr wissen will ===== | ||
| + | |||
| + | Weitere Befehle (etwa '' | ||
| + | |||
| + | Welche Farbenwörter man verwenden darf, findet man hier: https:// | ||
| + | |||
| + | <hidden Bemerkung für diejenigen, die sich noch an die Kreiswinkelsätze in der Mathematik erinnen> | ||
| + | Den Drehwinkel beim $n$-zackigen Sterns bekommt man sofort per Zentriwinkelsatz heraus, denn der Zentriwinkel über jeder Seite des $n$-Ecks ist $\frac{360^\circ}{n}$. | ||
| + | |||
| + | Beim $n$-Eck ist die im Hinweis gegebene Erklärung für den Drehwinkel meiner Meinung nach die beste. Alternativ geht es über den Sehne-Tangente-Satz... | ||
| + | </ | ||
| + | |||
| + | ===== Link zur Kursseite ===== | ||
| + | |||
| + | [[lehrkraefte: | ||
| + | |||