Python: Turtle: Unterschied zwischen den Versionen
Flinh1 (Diskussion | Beiträge) (→Allgemeines) |
Flinh1 (Diskussion | Beiträge) |
||
(31 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 4: | Zeile 4: | ||
<div align="right">'''[[Python: Module|Zur Seite "Python: Module"]]'''</div> | <div align="right">'''[[Python: Module|Zur Seite "Python: Module"]]'''</div> | ||
<div align="right">'''[[Python: Tkinter|Zur Seite "Python: Tkinter"]]'''</div> | <div align="right">'''[[Python: Tkinter|Zur Seite "Python: Tkinter"]]'''</div> | ||
− | <div align="right">'''[[Python: | + | <div align="right">'''[[Python: Pygame|Zur Seite "Python: Pygame"]]'''</div> |
− | + | <div align="right">'''[[Python: PyQT|Zur Seite "Python: PyQT"]]'''</div> | |
− | + | <div align="right">'''[[Python: Anaconda|Zur Seite "Python: Anaconda"]]'''</div> | |
== Allgemeines == | == Allgemeines == | ||
Zeile 15: | Zeile 15: | ||
---- | ---- | ||
− | == | + | == Zeichenmethoden == |
+ | |||
+ | * ''hideturtle()'' | ||
+ | |||
+ | * ''showturtle()'' | ||
− | * | + | * ''forward(x)'' # x = Pixel |
− | * | + | * ''backward(x)'' # x = Pixel |
− | * | + | * ''left(x)'' # x = Winkel |
− | * | + | * ''right(x)'' # x = Winkel |
− | * | + | * ''pensize(x)'' |
− | * | + | * ''dot(x)'' # Punkt(Durchmesser) |
− | * | + | * ''color(x'') oder ''color(x,y)'' # Zeichenfarbe, Füllfarbe (pencolor + fillcolor) [https://docs.python.domainunion.de/3.6/library/turtle.html#turtle.color] |
− | * | + | * ''begin_fill(), end_fill()'' |
− | * penup(), up() | + | * ''penup(), up()'' |
− | * pendown(), down() | + | * ''pendown(), down()'' |
− | * | + | * ''setpos(x,y)'' |
− | * | + | * ''goto(x,y)'' |
− | * | + | * ''shape(x'' # Vordefinierte Werte: ''arrow, turtle, circle, square, triangle, classic'' |
− | * setheading(turtle.towards(x,y)) # Marschrichtung auf einen definierten Punkt zu | + | * ''speed(x)'' # 1 = langsam, 6 = normal, 10 = schnell |
+ | |||
+ | * ''setheading(turtle.towards(x,y))'' # Marschrichtung auf einen definierten Punkt zu, ''setheading(0)'' = Ausrichtung nach rechts, wie beim Start. | ||
+ | |||
+ | * ''write()'' # Beispiel: ''write("Python macht schön!", True, "center", font = ("Arial", 14, "bold"))'' | ||
+ | |||
+ | * ''exitonclick()'' : Das Fenster mit der fertigen Grafik schließt auf Mausklick. | ||
---- | ---- | ||
Zeile 51: | Zeile 61: | ||
Mit diesen Methoden wird der Hintergrund für Turtle definiert. | Mit diesen Methoden wird der Hintergrund für Turtle definiert. | ||
− | * | + | * ''title("x")'' # Titel des Fensters |
− | * | + | * ''setup(x,y)'' # Stellt Breite und Höhe ein. |
− | * | + | * ''bgcolor('color')'' # Stellt die Hintergrundfarbe ein. |
− | * | + | * ''bgpic(x.gif)'' # Definiert Hintergrundbild (nur ''gif''). |
− | * numinput(x,y) # Eingabefenster für Längenangabe: x = Bezeichnung des Fensters ("Länge in Pixel"), y = Eingabeaufforderung ("Länge: ") | + | * ''addshape(x.gif)'' # Fügt benutzerdefinierte Shapes für die Turtle hinzu. |
+ | |||
+ | * ''numinput(x,y)'' # Eingabefenster für Längenangabe: x = Bezeichnung des Fensters ("Länge in Pixel"), y = Eingabeaufforderung ("Länge: ") | ||
Zeile 115: | Zeile 127: | ||
Liste gültiger Farbnamen: | Liste gültiger Farbnamen: | ||
* https://www.tcl.tk/man/tcl8.5/TkCmd/colors.htm | * https://www.tcl.tk/man/tcl8.5/TkCmd/colors.htm | ||
+ | |||
+ | ---- | ||
+ | |||
+ | == Beispiele == | ||
+ | === n-Eck zeichnen === | ||
+ | * Winkel: 360 / Anzahl der Ecken | ||
+ | * Schrittweite: 600 / Anzahl der Ecken | ||
+ | <nowiki> | ||
+ | import turtle | ||
+ | """Ich taufe die Schildkröte "elsa".""" | ||
+ | elsa = turtle.Pen() | ||
+ | weite = 10 | ||
+ | elsa.speed(1) | ||
+ | elsa.hideturtle() | ||
+ | ecken = eval(input("Wie viele Ecken? ")) | ||
+ | for i in range(ecken): | ||
+ | elsa.forward(600 / ecken) | ||
+ | elsa.right(360 / ecken) | ||
+ | |||
+ | </nowiki> | ||
+ | |||
+ | ---- | ||
+ | === Koordinatenkreuz === | ||
+ | <nowiki> | ||
+ | import turtle | ||
+ | elsa = turtle.Pen() | ||
+ | elsa.hideturtle() | ||
+ | elsa.setpos(-400,0) | ||
+ | elsa.goto(400,0) | ||
+ | elsa.up() | ||
+ | elsa.setpos(0,-300) | ||
+ | elsa.down() | ||
+ | elsa.goto(0,300) | ||
+ | elsa.up() | ||
+ | </nowiki> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | === Sterne === | ||
+ | <nowiki> | ||
+ | import turtle as t | ||
+ | |||
+ | def stern(laenge, zacken): | ||
+ | grad = 360 / zacken | ||
+ | for x in range(0, zacken): | ||
+ | t.forward(laenge) | ||
+ | t.left(180 - grad) | ||
+ | t.forward(laenge) | ||
+ | t.right(180 - grad * 2) | ||
+ | |||
+ | stern(100,19) | ||
+ | </nowiki> | ||
---- | ---- | ||
== Quellen == | == Quellen == | ||
+ | |||
+ | * https://openbookproject.net/thinkcs/python/english3e/hello_little_turtles.html | ||
+ | |||
+ | * https://runestone.academy/runestone/books/published/thinkcspy/PythonTurtle/toctree.html | ||
+ | |||
+ | * https://realpython.com/beginners-guide-python-turtle/ | ||
+ | |||
+ | * <nowiki>https://www.tutorialspoint.com/turtle-programming-in-python</nowiki> | ||
+ | |||
+ | * https://www.techwithtim.net/tutorials/python-module-walk-throughs/turtle-module/introduction/ | ||
+ | |||
+ | * https://www.vivaxsolutions.com/web/python-turtle.aspx | ||
+ | |||
+ | * https://docs.python.org/3/library/turtle.html | ||
* https://docs.python.org/3.3/library/turtle.html?highlight=turtle | * https://docs.python.org/3.3/library/turtle.html?highlight=turtle | ||
Zeile 124: | Zeile 202: | ||
* http://python4kids.net/downloads/py4k_cda4/turtlemodul-referenz/turtlemodul_referenz.pdf | * http://python4kids.net/downloads/py4k_cda4/turtlemodul-referenz/turtlemodul_referenz.pdf | ||
− | * https:// | + | * https://www.codegrepper.com/code-examples/csharp/python+turtle+tutorial |
+ | |||
+ | ---- | ||
+ | |||
+ | == Troubleshooting == | ||
+ | |||
+ | === circular import === | ||
+ | |||
+ | Fehlermeldung: "AttributeError: partially initialized module 'turtle' has no attribute xy (most likely due to a circular import)" | ||
+ | |||
+ | Ursache: Datei darf nicht turtle.py heißen | ||
---- | ---- | ||
[[Kategorie: Alle Seiten]] | [[Kategorie: Programmierung ]] | | [[Kategorie: Alle Seiten]] | [[Kategorie: Programmierung ]] | |
Aktuelle Version vom 9. Dezember 2020, 16:30 Uhr
Inhaltsverzeichnis
Allgemeines
Zeichenmethoden
- hideturtle()
- showturtle()
- forward(x) # x = Pixel
- backward(x) # x = Pixel
- left(x) # x = Winkel
- right(x) # x = Winkel
- pensize(x)
- dot(x) # Punkt(Durchmesser)
- color(x) oder color(x,y) # Zeichenfarbe, Füllfarbe (pencolor + fillcolor) [1]
- begin_fill(), end_fill()
- penup(), up()
- pendown(), down()
- setpos(x,y)
- goto(x,y)
- shape(x # Vordefinierte Werte: arrow, turtle, circle, square, triangle, classic
- speed(x) # 1 = langsam, 6 = normal, 10 = schnell
- setheading(turtle.towards(x,y)) # Marschrichtung auf einen definierten Punkt zu, setheading(0) = Ausrichtung nach rechts, wie beim Start.
- write() # Beispiel: write("Python macht schön!", True, "center", font = ("Arial", 14, "bold"))
- exitonclick() : Das Fenster mit der fertigen Grafik schließt auf Mausklick.
Screen-Methoden
Mit diesen Methoden wird der Hintergrund für Turtle definiert.
- title("x") # Titel des Fensters
- setup(x,y) # Stellt Breite und Höhe ein.
- bgcolor('color') # Stellt die Hintergrundfarbe ein.
- bgpic(x.gif) # Definiert Hintergrundbild (nur gif).
- addshape(x.gif) # Fügt benutzerdefinierte Shapes für die Turtle hinzu.
- numinput(x,y) # Eingabefenster für Längenangabe: x = Bezeichnung des Fensters ("Länge in Pixel"), y = Eingabeaufforderung ("Länge: ")
Beispiel:
import turtle ninja = turtle.Turtle() hintergrund = turtle.Screen() ninja.pensize(20) ninja.shape("classic") hintergrund.bgpic("/home/pfad/Bilder/hintergrundbild.gif")
Eigenes Bild für die Turtle definieren
Es werden nur gif akzeptiert. Online-Konvertierung auf
Alternativ können zur Konvertierung die Programme GIMP, Inkscape oder Converseen verwendet werden.
import turtle hintergrund = turtle.Screen() # Hintergrund-"Screen" aufrufen hintergrund.addshape("/pfad/ninja.gif") # Neue Form (shape) definieren ninja = turtle.Turtle() ninja.shape("/pfad/ninja.gif")
Farben
turtle.color(rot,grün,blau)
- Rot
(1,0,0)
- Grün
(0,1,0)
- Blau
(0,0,1)
- Gelb
(1,1,0)
- Cyan
(0,1,1)
- Schwarz
(0,0,0)
- Weiß
(1,1,1)
- Gold
(0.9,0.75,0)
- Hellrosa
(1,0.7,0.75)
- Orange
(1,0.5,0)
- Orange
(0.9,0.5,0.15)
The X11 Color Set:
Liste gültiger Farbnamen:
Beispiele
n-Eck zeichnen
- Winkel: 360 / Anzahl der Ecken
- Schrittweite: 600 / Anzahl der Ecken
import turtle """Ich taufe die Schildkröte "elsa".""" elsa = turtle.Pen() weite = 10 elsa.speed(1) elsa.hideturtle() ecken = eval(input("Wie viele Ecken? ")) for i in range(ecken): elsa.forward(600 / ecken) elsa.right(360 / ecken)
Koordinatenkreuz
import turtle elsa = turtle.Pen() elsa.hideturtle() elsa.setpos(-400,0) elsa.goto(400,0) elsa.up() elsa.setpos(0,-300) elsa.down() elsa.goto(0,300) elsa.up()
Sterne
import turtle as t def stern(laenge, zacken): grad = 360 / zacken for x in range(0, zacken): t.forward(laenge) t.left(180 - grad) t.forward(laenge) t.right(180 - grad * 2) stern(100,19)
Quellen
- https://www.tutorialspoint.com/turtle-programming-in-python
Troubleshooting
circular import
Fehlermeldung: "AttributeError: partially initialized module 'turtle' has no attribute xy (most likely due to a circular import)"
Ursache: Datei darf nicht turtle.py heißen
| |