lehrkraefte:sbt:informatik:glf22:python:little-programming-tasks-turtle

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
lehrkraefte:sbt:informatik:glf22:python:little-programming-tasks-turtle [2023/01/27 12:37] Karlheinz Schubertlehrkraefte: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://de.wikipedia.org/wiki/Wurzelschnecke|Wikipedia: Wurzelschnecke]].
 +  - 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', z.B.:
 +  - 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,y)
 +</hidden>
 +
 +<hidden Hinweis 1>
 +<code python>
 +for index in range(1, 18):
 +    Stift.fd(100)
 +    x, y = Stift.pos()
 +    Stift.goto(0, 0)
 +    alteRichtung = Stift.towards(x, y)
 +    Stift.setheading(alteRichtung + 90)
 +    Stift.goto(x, y)
 +</code>
 +</hidden>
 +<hidden Hinweis2>
 +<code python>
 +import turtle
 +
 +Titel = 'Tess becomes a traffic light!'
 +
 +Zeichenflaeche = turtle.Screen()
 +Zeichenflaeche.setup(width=0.5, height=0.5)
 +Zeichenflaeche.title(Titel)
 +Zeichenflaeche.bgcolor('lightblue')
 +Stift = turtle.Turtle()
 +#Stift.hideturtle()
 +Stift.speed(300)
 +
 +Einheitslaenge = 60
 +Anzahl = 16
 +
 +Stift.fillcolor("lightgreen")
 +Stift.begin_fill()
 +for index in range(1, Anzahl+1):
 +    Stift.fd(Einheitslaenge)
 +    x, y = Stift.pos()
 +    Stift.goto(0, 0)
 +    alteRichtung = Stift.towards(x, y)
 +    Stift.setheading(alteRichtung + 90)
 +    Stift.goto(x, y)
 +
 +Stift.end_fill()
 +
 +Zeichenflaeche.exitonclick()
 +</code>
 +</hidden>
 +</WRAP>
 +
 +===== 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 = ["pink", "green", "blue", "brown", "cyan", "yellow", "red"]
 +</code>
 +
 +<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, 0 - Randabstand, 40 * AnzahlBalken + Randabstand, MaxBalkenHoehe + Randabstand)
 +
 +Stift = turtle.Turtle()
 +Stift.pensize(3)
 +Stift.hideturtle()
 +Stift.speed(0)
 +</code>
 +</hidden>
 +
 +<hidden Hinweis 1>
 +<code python>
 +Verwende eine Funktion, die jeweils einen Balken in einer Farbe zeichnet.
 +</code>
 +</hidden>
 +<hidden Zusatz>
 +Lies die Werte für die Balken aus einer Textdatei ein.
 +<code python>
 +ReadModus = 'r'
 +Datei = open('werte.csv', ReadModus)
 +DateiInhalt = Datei.readline()
 +TextWerte = DateiInhalt.split(','
 +Werte = list(map(int, TextWerte))
 +print(Werte)
 +</code>
 +</hidden>
 +</WRAP>