[PYTHON] Spiele mit einer Schildkröte mit Schildkrötengrafiken (Teil 1)

Was ist Turtle Graphics?

Es gibt eine Schildkröte mit einem Stift. Wenn Sie die Schildkröte mit einem einfachen Befehl bewegen, zeichnet der Stift der Schildkröte die Spur der Bewegung der Schildkröte als Linie. Da Sie sich bewegen können, während Sie den Stift anheben, können Sie Figuren zeichnen, die nicht mit einem einzigen Strich gezeichnet werden. Sie können auch die Farbe und Dicke des Stifts ändern.

Turtle Graphics erschien erstmals 1967 mit der Sprache LOGO und wird auch in der Programmierausbildung für Kinder verwendet. Es ist leicht zu verstehen, da die Bedienung durch die Anweisung sichtbar ist und das Programmieren durch Kombinieren verschiedener Anweisungen schneller zu verstehen ist. http://en.wikipedia.org/wiki/Turtle_graphics

Schildkrötengrafiken in Python

Unter Windows können Sie Turtle Graphics auch verwenden, indem Sie Python installieren. Außer Windows müssen Sie möglicherweise zusätzliche externe Grafikbibliotheken installieren.

Funktionsprüfung & Betriebsdemo

Stellen Sie zunächst sicher, dass Python installiert ist. Lesen Sie unter Windows Folgendes, und aktivieren Sie die Option python.exe zum Pfad hinzufügen, um Python zu installieren.

Python-Installation in der Windows-Umgebung http://qiita.com/maisuto/items/404e5803372a44419d60

Als nächstes überprüfen wir, ob sich die Schildkröte bewegt.

C:\Users\home> python -m turtle

Es sollte unter Windows gut funktionieren. In anderen Umgebungen wird möglicherweise ein Fehler angezeigt, der dem folgenden ähnelt:

$ python -m turtle
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/usr/lib/python2.7/lib-tk/turtle.py", line 107, in <module>
    import Tkinter as TK
  File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 42, in <module>
    raise ImportError, str(msg) + ', please install the python-tk package'
ImportError: No module named _tkinter, please install the python-tk package

In diesem Fall müssen Sie das python-tk-Paket wie in der letzten Zeile beschrieben installieren. Installieren Sie das Paket für Debian / Ubuntu Linux wie folgt.

$ sudo apt-get install python-tk

Wenn es überhaupt nicht funktioniert, versuchen Sie, die neueste Version von Python zu installieren.

Spiel mit einer Schildkröte

Vorbereitung

Starten Sie den Python-Interpreter und importieren Sie das Turtle-Paket.

C:\Users\home> python
>>> from turtle import *

Was kann ich tun?

Sie können mit dir () und help () überprüfen, was Sie der Schildkröte befehlen können.

>>> dir()
['Pen', 'RawPen', 'RawTurtle', 'Screen', 'ScrolledCanvas', 'Shape', 'Terminator', 'Turtle', 'TurtleScreen', 'Vec2D', '__builtins__', '__doc__', '__name__', '__package__', 'acos', 'addshape', 'asin', 'atan', 'atan2', 'back', 'backward', 'begin_fill', 'begin_poly', 'bgcolor', 'bgpic', 'bk', 'bye', 'ceil', 'circle', 'clear', 'clearscreen', 'clearstamp', 'clearstamps', 'clone', 'color', 'colormode', 'cos', 'cosh', 'degrees', 'delay', 'distance', 'done', 'dot', 'down', 'e', 'end_fill', 'end_poly', 'exitonclick', 'exp', 'fabs', 'fd', 'fill', 'fillcolor', 'floor', 'fmod', 'forward', 'frexp', 'get_poly', 'getcanvas', 'getpen', 'getscreen','getshapes', 'getturtle', 'goto', 'heading', 'hideturtle', 'home', 'ht', 'hypot', 'isdown', 'isvisible', 'ldexp', 'left', 'listen', 'log', 'log10', 'lt', 'mainloop', 'mode', 'modf', 'onclick', 'ondrag', 'onkey', 'onrelease', 'onscreenclick', 'ontimer', 'pd', 'pen', 'pencolor', 'pendown', 'pensize', 'penup', 'pi', 'pos', 'position', 'pow', 'pu', 'radians', 'register_shape', 'reset', 'resetscreen','resizemode', 'right', 'rt', 'screensize', 'seth', 'setheading', 'setpos', 'setposition', 'settiltangle', 'setundobuffer', 'setup', 'setworldcoordinates', 'setx', 'sety', 'shape', 'shapesize', 'showturtle', 'sin', 'sinh', 'speed', 'sqrt', 'st', 'stamp', 'tan', 'tanh', 'tilt', 'tiltangle', 'title', 'towards', 'tracer','turtle', 'turtles', 'turtlesize', 'undo', 'undobufferentries', 'up', 'update','width', 'window_height', 'window_width', 'write', 'write_docstringdict', 'xcor', 'ycor']
>>> help(Turtle)
>>> help(foward)
>>> help(back)
>>> help(left)
>>> help(right)
>>> help(up)
>>> help(down)
>>> help(color)
>>> help(clear)
>>> help(bye)

Weitere Informationen finden Sie in der Online-Dokumentation. http://docs.python.jp/2/library/turtle.html

Einfacher Umzug

Lassen Sie uns als Ausgangspunkt einfach die Schildkröte bewegen.

>>> forward(100)    #Machen Sie 100 Schritte
>>> circle(100)     #Zeichnen Sie einen Kreis mit einem Radius von 100
>>> left(90)        #90 Grad nach links
>>> color('red')    #Halten Sie einen roten Stift
>>> forward(100)    #Machen Sie 100 Schritte

turtle1.png

Zeichne ein Muster

Lassen Sie uns den Vorgang wiederholen und ein Muster zeichnen.

>>> for i in range(0, 360, 30):  #Alle 30 Grad von 0 Grad bis 360 Grad
...     circle(50)               #Geben Sie die TAB-Taste am Anfang der Zeile ein, um sie einzurücken(Schritt zurück)
...     left(30)                 #Geben Sie die TAB-Taste am Anfang der Zeile ein, um sie einzurücken(Die Erklärung wurde im Folgenden weggelassen)
... #Der Vorgang beginnt mit der Eingabe eines Zeilenumbruchs am Zeilenanfang
>>> color('green'):
>>> for i in range(0, 360, 30):
...     circle(30)
...     left(30)
...     forward(10)
... #Der Vorgang beginnt mit der Eingabe eines Zeilenumbruchs am Zeilenanfang

turtle2.png

Versuchen Sie, eine Zeichenfunktion zu definieren

Zeichnen wir einen Stern, indem wir einen Stern als Funktion zeichnen.

>>> def star(size):
...     for i in 1,2,3,4,5:
...         forward(size)
...         right(180 - 180/5)
... #Die Funktionsdefinition endet mit der Eingabe eines Zeilenumbruchs am Zeilenanfang
>>> reset()
>>> star(100)
>>> color('green')
>>> begin_fill()
>>> star(50)
>>> end_fill()

turtle3.png

Zeichne eine fraktale Figur

>>> def fractal(size, depth=0):
...    if depth <= 0:
...       forward(size)                          #Gerade Linie
...    else:
...       fractal(size/3, depth-1); left(60)     #1/Fraktale Zeichnung mit einer Länge von 3, 60 Grad nach links gerichtet
...       fractal(size/3, depth-1); left(-120)   #1/Fraktale Zeichnung mit einer Länge von 3, 120 Grad nach rechts gerichtet
...       fractal(size/3, depth-1); left(60)     #1/Fraktale Zeichnung mit einer Länge von 3, 60 Grad nach links gerichtet
...       fractal(size/3, depth-1)               #1/Fraktale Zeichnung mit einer Länge von 3
... (Leerzeileneingang) #Die Funktionsdefinition endet mit der Eingabe eines Zeilenumbruchs am Zeilenanfang
... reset(); fractal(200)
... reset(); fractal(200, 1)
... reset(); fractal(200, 2)
... reset(); fractal(200, 3)

turtle4.png

>>> reset(); goto(-100,-100); clear()
>>> for i in "12345":
...     fractal(200, 3)
...     left(360/5)
... (Leerzeileneingang)

turtle5.png

Das ist alles für den ersten Teil. Im zweiten Teil werde ich mit mehreren Schildkröten spielen und den Schildkröten neue Bewegungen hinzufügen.

Recommended Posts

Spiele mit einer Schildkröte mit Schildkrötengrafiken (Teil 1)
Spielen Sie mit Turtle auf Google Colab
[Python] Kapitel 03-01 Schildkrötengrafiken (Erstellen einer Schildkröte)
Spielen Sie handschriftliche Zahlen mit Python Teil 2 (identifizieren)
Spielen Sie wie eine Web-App mit ipywidgets
[Python] Zeichnen eines Wirbelmusters mit einer Schildkröte
Zeichnen Sie ein Diagramm mit PyQtGraph Part 1-Drawing
Spiel mit dem Propheten
Spiele mit PyTorch
Spielen Sie mit 2016-Python
Spielen Sie mit CentOS 8
Spiel mit der Pyramide
Spiel mit Fathom
Tweet die Wettervorhersage mit Bot Teil 2
[Piyopiyokai # 1] Spielen wir mit Lambda: Erstellen einer Lambda-Funktion
Zeichnen Sie ein Diagramm mit den PyQtGraph Part 3-PlotWidget-Einstellungen
[Python] Zeichne eine Mickey Mouse mit Turtle [Anfänger]
Zeichnen Sie ein Diagramm mit den Einstellungen von PyQtGraph Part 4-PlotItem
Zeichnen Sie ein Diagramm mit PyQtGraph Teil 6 - Anzeigen einer Legende
Zeichnen Sie mit PyQtGraph Teil 5 ein Diagramm. Erhöhen Sie die Y-Achse
A4 Größe mit Python-Pptx
Ich habe mit Play with Docker einen gebrauchsfertigen Syslog-Server erstellt
[AWS] Spielen mit Schrittfunktionen (SAM + Lambda) Teil 3 (Zweig)
Spiel mit Othello (Reversi)
[Lass uns mit Python spielen] Ein Haushaltsbuch erstellen
Wie man ein Schießspiel mit toio macht (Teil 1)
Sandkasten mit neo4j Teil 10
[AWS] Spielen mit Schrittfunktionen (SAM + Lambda) Teil 1 (Basic)
[Piyopiyokai # 1] Lass uns mit Lambda spielen: Holen Sie sich einen Twitter-Account
Zeichnen Sie ein Diagramm mit PyQtGraph Teil 2 - Detaillierte Ploteinstellungen
Mit Dekorateur dekorieren
[Piyopiyokai # 1] Spielen wir mit Lambda: Erstellen eines Python-Skripts
[Python] Weg zur Schlange (5) Spiele mit Matplotlib
[AWS] Spielen mit Schrittfunktionen (SAM + Lambda) Teil 2 (Parameter)
Spielen Sie mit dem Raspberry Pi Zero WH-Kameramodul Teil 1
Erstellen Sie mit QGIS Part 2 ein tky2jgd-Plug-In ohne praktische Anwendbarkeit
Erstellen eines tky2jgd-Plug-Ins ohne praktische Anwendbarkeit mit QGIS Teil 1
Erstellen Sie mit Django eine Bulletin-Board-App von Grund auf neu. (Teil 2)
Erstellen Sie mit Django eine Bulletin-Board-App von Grund auf neu. (Teil 3)
Bildverarbeitung mit Python (Teil 2)
Spielen wir mit der 4. Dimension der 4. Dimension
Python mit freeCodeCamp Teil1 studieren
Erstellen Sie ein Blueqat-Backend ~ Teil 1
Spielen wir mit Amedas Daten - Teil 1
Angrenzende Bilder mit Python Teil 1
Lernen Sie Librosa mit einem Tutorial 1
Zeichnen Sie mit NetworkX ein Diagramm
Schaben mit Selen + Python Teil 1
Spielen Sie mit Push-Benachrichtigungen mit imap4lib
Erstellen Sie ein Blueqat-Backend ~ Teil 2
Versuchen Sie, mit einer Shell zu programmieren!
Spielen Sie mit Linux-Partitionen herum
Erstellen Sie eine Homepage mit Django
Spielen wir mit Amedas Daten - Teil 4
Python studieren mit freeCodeCamp part2
Bildverarbeitung mit Python (Teil 1)
Spielen Sie mit Jupyter Notebook (IPython Notebook)
[Python] Spielen Sie mit Discords Webhook.
Nampre mit Python lösen (Teil 2)
Verwenden eines Druckers mit Debian 10