Python: Turtle: Unterschied zwischen den Versionen

Aus Flinkwiki
Wechseln zu: Navigation, Suche
(Eigenes Bild für die Turtle definieren)
 
(47 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 
<div align="right"><big>'''[https://flinkwiki.de/index.php?title=Kategorie:Alle_Seiten Seitenübersicht]'''</big></div>
 
<div align="right"><big>'''[https://flinkwiki.de/index.php?title=Kategorie:Alle_Seiten Seitenübersicht]'''</big></div>
 
<div align="right">'''[[Python|Zur Seite "Python"]]'''</div>
 
<div align="right">'''[[Python|Zur Seite "Python"]]'''</div>
 
+
<div align="right">'''[[Python: Klassen|Zur Seite "Python: Klassen"]]'''</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: 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 ==
  
 +
* https://docs.python.org/3/library/turtle.html
 
* https://docs.python.org/2/library/turtle.html
 
* https://docs.python.org/2/library/turtle.html
* https://docs.python.org/3/library/turtle.html
 
  
 
----
 
----
  
== Methoden ==
+
== Zeichenmethoden ==
  
* hideturtle()
+
* ''hideturtle()''
  
* forward(x)
+
* ''showturtle()''
  
* backward(x)
+
* ''forward(x)'' # x = Pixel
  
* left(x)
+
* ''backward(x)'' # x = Pixel
  
* right(x)
+
* ''left(x)'' # x = Winkel
  
* pensize(x)
+
* ''right(x)'' # x = Winkel
  
* pencolor(x,y) # Zeichenfarbe, Füllfarbe
+
* ''pensize(x)''
  
* penup(), up()
+
* ''dot(x)'' # Punkt(Durchmesser)
  
* pendown(), down()
+
* ''color(x'') oder ''color(x,y)'' # Zeichenfarbe, Füllfarbe (pencolor + fillcolor) [https://docs.python.domainunion.de/3.6/library/turtle.html#turtle.color]
  
* goto(x,y)
+
* ''begin_fill(), end_fill()''
  
* shape(x) # Vordefinierte Werte: ''arrow, turtle, circle, square, triangle, classic''
+
* ''penup(), up()''
  
* speed(x) # 1 = langsam, 6 = normal, 10 = schnell
+
* ''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.
  
 
----
 
----
Zeile 42: Zeile 61:
 
Mit diesen Methoden wird der Hintergrund für Turtle definiert.  
 
Mit diesen Methoden wird der Hintergrund für Turtle definiert.  
  
* setup(x,y) # Stellt Breite und Höhe ein.
+
* ''title("x")'' # Titel des Fensters
 +
 
 +
* ''setup(x,y)'' # Stellt Breite und Höhe ein.
  
* bgcolor(x) # Stellt die Hintergrundfarbe ein.
+
* ''bgcolor('color')'' # Stellt die Hintergrundfarbe ein.
  
* bgpic(x) # Definiert Hintergrundbild (nur ''gif'').
+
* ''bgpic(x.gif)'' # Definiert Hintergrundbild (nur ''gif'').
  
* addshape(x.gif) # Fügt benutzerdefinierte Shapes für die Turtle hinzu.
+
* ''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 68: Zeile 91:
 
* https://convertimage.net/convert-a-picture/to-gif/
 
* https://convertimage.net/convert-a-picture/to-gif/
 
* https://image.online-convert.com/
 
* https://image.online-convert.com/
Alternativ können zur Konvertierung die Programme ''GIMP'', ''Inkscape'' (Windows) oder ''Converseen'' (Linux) verwendet werden.
+
Alternativ können zur Konvertierung die Programme ''GIMP'', ''Inkscape'' oder ''Converseen'' verwendet werden.
  
 
  <nowiki>
 
  <nowiki>
Zeile 99: Zeile 122:
 
The X11 Color Set:
 
The X11 Color Set:
 
*http://cng.seas.rochester.edu/CNG/docs/x11color.html
 
*http://cng.seas.rochester.edu/CNG/docs/x11color.html
 +
 +
----
 +
 +
Liste gültiger Farbnamen:
 +
* 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
  
 
* http://python4kids.net/downloads/py4k_cda4/turtlemodul-referenz/turtlemodul_referenz.pdf
 
* http://python4kids.net/downloads/py4k_cda4/turtlemodul-referenz/turtlemodul_referenz.pdf
  
* https://interactivepython.org/runestone/static/CS152f17/PythonTurtle/OurFirstTurtleProgram.html
+
* 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, 17:30 Uhr

Seitenübersicht
Zur Seite "Python"
Zur Seite "Python: Klassen"
Zur Seite "Python: Module"
Zur Seite "Python: Tkinter"
Zur Seite "Python: Pygame"
Zur Seite "Python: PyQT"
Zur Seite "Python: Anaconda"

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


| |