Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | |||
| lehrkraefte:sbt:informatik:glf22:python:little-programming-tasks-turtle [2023/01/27 12:37] – Karlheinz Schubert | lehrkraefte:sbt:informatik:glf22:python:little-programming-tasks-turtle [2023/01/27 12:45] (current) – [Zeichne ein Balkendiagram] Karlheinz Schubert | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ===== Zeichne eine Wurzelschnecke ===== | ||
| + | | ||
| + | <WRAP center round todo> | ||
| + | - Schau dir den Wikipedia Eintrag zur Wurzelschnecke an [[https:// | ||
| + | - Schreibe ein kleines Programm, das mit der Turtle eine Wurzelschnecke mit 17 Dreiecken zeichnet. | ||
| + | - Frage am Anfang des Programms die Anzahl der Elemente ab und verwende diese in der Schleife. | ||
| + | |||
| + | <hidden Hinweis 0> | ||
| + | Es gibt mehrere Möglichkeiten des Konstruktionsalgorithmus', | ||
| + | - Man ermittelt Länge der Hypothenuse und den Winkel und zeichnet damit das Dreieck.\\ Für diesen Algorthmus braucht an das Python Modul Math | ||
| + | - Man nimmt die letzte Hypothenuse und geht im 90° Winkel von ihr eine Einheitseinheit weiter. Der Rücksprung zum Mittelpunkt ergibt die neue Hypothenuse.\\ Für diesen Algorithmus benötigt man die Turtle Funktionen x, y = Stift.pos() und Stift.towards(x, | ||
| + | </ | ||
| + | |||
| + | <hidden Hinweis 1> | ||
| + | <code python> | ||
| + | for index in range(1, 18): | ||
| + | Stift.fd(100) | ||
| + | x, y = Stift.pos() | ||
| + | Stift.goto(0, | ||
| + | alteRichtung = Stift.towards(x, | ||
| + | Stift.setheading(alteRichtung + 90) | ||
| + | Stift.goto(x, | ||
| + | </ | ||
| + | </ | ||
| + | <hidden Hinweis2> | ||
| + | <code python> | ||
| + | import turtle | ||
| + | |||
| + | Titel = 'Tess becomes a traffic light!' | ||
| + | |||
| + | Zeichenflaeche = turtle.Screen() | ||
| + | Zeichenflaeche.setup(width=0.5, | ||
| + | Zeichenflaeche.title(Titel) | ||
| + | Zeichenflaeche.bgcolor(' | ||
| + | Stift = turtle.Turtle() | ||
| + | # | ||
| + | Stift.speed(300) | ||
| + | |||
| + | Einheitslaenge = 60 | ||
| + | Anzahl = 16 | ||
| + | |||
| + | Stift.fillcolor(" | ||
| + | Stift.begin_fill() | ||
| + | for index in range(1, Anzahl+1): | ||
| + | Stift.fd(Einheitslaenge) | ||
| + | x, y = Stift.pos() | ||
| + | Stift.goto(0, | ||
| + | alteRichtung = Stift.towards(x, | ||
| + | Stift.setheading(alteRichtung + 90) | ||
| + | Stift.goto(x, | ||
| + | |||
| + | Stift.end_fill() | ||
| + | |||
| + | Zeichenflaeche.exitonclick() | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ===== Zeichne ein Balkendiagram ===== | ||
| + | | ||
| + | <WRAP center round todo> | ||
| + | Baue ein kleines Programm, das gegebene Werte als Blakengrafik anzeigt. | ||
| + | Die Werte sollten in einer Liste angegeben werden, z.B. | ||
| + | <code python> | ||
| + | Werte = [50, 110, 130, 90, 145, 210, 100] | ||
| + | Farben = [" | ||
| + | </ | ||
| + | |||
| + | <hidden Hinweis 0> | ||
| + | Die Initialisierung von Zeichenfläche und Stift könnte so aussehen: | ||
| + | <code python> | ||
| + | MaxBalkenHoehe = max(Werte) | ||
| + | AnzahlBalken = len(Werte) | ||
| + | Randabstand = 10 | ||
| + | |||
| + | Zeichenflaeche = turtle.Screen() | ||
| + | Zeichenflaeche.setworldcoordinates(0 - Randabstand, | ||
| + | |||
| + | Stift = turtle.Turtle() | ||
| + | Stift.pensize(3) | ||
| + | Stift.hideturtle() | ||
| + | Stift.speed(0) | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <hidden Hinweis 1> | ||
| + | <code python> | ||
| + | Verwende eine Funktion, die jeweils einen Balken in einer Farbe zeichnet. | ||
| + | </ | ||
| + | </ | ||
| + | <hidden Zusatz> | ||
| + | Lies die Werte für die Balken aus einer Textdatei ein. | ||
| + | <code python> | ||
| + | ReadModus = ' | ||
| + | Datei = open(' | ||
| + | DateiInhalt = Datei.readline() | ||
| + | TextWerte = DateiInhalt.split(',' | ||
| + | Werte = list(map(int, | ||
| + | print(Werte) | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||