Lerne Python durch Zeichnen (Turtle Graphics)

Was ist Turtle Graphics?

Basierend auf der pädagogischen Programmiersprache "LOGO" wird die Schildkröte auf dem Bildschirm durch Programmieren bedient und als Figur gezeichnet. Es wurde in den 1960er Jahren entwickelt und wird manchmal zum Programmierenlernen für Kinder verwendet, da die Ergebnisse des Programms sofort visuell bestätigt werden können.

Umgebung

Berühren Sie Turtle Graphics (Interactive Shell)

Lassen Sie uns zunächst einen kurzen Blick auf Turtle Graphics mit einer interaktiven Shell werfen.

Öffnen Sie den PyCharm-Terminalbildschirm und geben Sie "Python" ein.

$ Python

Nachdem Sie eine interaktive Shell haben, importieren Sie "Turtle".

>>> import turtle

Geben Sie dann "turtle.forward (100)" ein.

>>> turtle.forward(100)

Dann wird die Grafik wie unten gezeigt gestartet.

image.png

Dies bedeutet, dass der Pfeil 100 Mal vorwärts bewegt wurde.

Wenn der Pfeil nach unten zeigen soll, biegen Sie ihn als turtle.right (90) um 90 Grad nach rechts.

>>> turtle.right(90)

image.png

Geben Sie in diesem Zustand erneut "turtle.forward (100)" ein, um fortzufahren.

>>> turtle.forward(100)

image.png

Wenn Sie der Meinung sind, dass die Form des führenden Pfeils stumpf ist, können Sie sie mit shape. () Ändern. Dieses Mal möchte ich es in eine Schildkröte verwandeln.

>>> turtle.shape('turtle')

image.png

Es ist auch möglich, die Farbe dieser Schildkröte mit "color ()" zu ändern.

>>> turtle.color('red')

image.png

Wenn Sie diese Schildkröte verstecken möchten, verwenden Sie hideturtle ().

>>> turtle.hideturtle()

image.png

Geben Sie show turtle () ein, wenn die versteckte Schildkröte wieder angezeigt werden soll.

>>> turtle.showturtle()

image.png

Sie können neben einer geraden Linie auch einen Kreis zeichnen.

>>> turtle.circle(100)

image.png

Jetzt wird es mit einer roten Linie gezeichnet, aber wenn Sie die Farbe dieser Linie ändern möchten Verwenden Sie pencolor ().

Lassen Sie uns gleichzeitig den Winkel ein wenig ändern und fortfahren.

>>> turtle.pencolor('blue')
>>> turtle.right(45)
>>> turtle.forward(100)

image.png

Sie können auch rückwärts gehen und backward () verwenden.

>>> turtle.backward(200)

image.png

Verwenden Sie home (), wenn Sie zur allerersten Position zurückkehren möchten.

>>> turtle.home()

image.png

Verwenden Sie clear (), wenn Sie alles löschen möchten.

>>> turtle.clear()

image.png

Geben Sie am Ende done () ein, um den Vorgang zu beenden.

>>> turtle.done()

Erstellen Sie eine Datei und führen Sie sie aus

Oben wurde es in einer interaktiven Shell vom Terminal ausgeführt, aber von hier aus Erstellen Sie eine Python-Datei mit einem geeigneten Namen und führen Sie sie aus der Datei aus.

Schreiben wir den folgenden einfachen Prozess in die Datei und führen ihn aus.

import turtle

turtle.forward(100)

Dann können Sie sehen, dass es nur für einen Moment angezeigt wird und dann sofort verschwindet. Um es weiterhin anzuzeigen, setzen Sie "done ()" in die letzte Zeile, um anzuzeigen, dass die gesamte Verarbeitung abgeschlossen ist. Ich werde es beschreiben.

import turtle

turtle.forward(100)
turtle.done()

image.png

Sie können sehen, dass es fest angezeigt wird.

Quadrat

Lassen Sie uns ein Rechteck mit Pythons for-Schleife ausgeben. Die Idee ist, den Fortschritt von turtle.forward (100) viermal zu wiederholen, Sobald der Vorschub abgeschlossen ist, wird ein Vorgang zum Drehen um 90 Grad hinzugefügt.

import turtle

turtle.color('red', 'yellow')

turtle.begin_fill()
for _ in range(4):
    turtle.forward(100)
    turtle.right(90)
turtle.end_fill()

turtle.done()

Im Dateiformat lautet der Inhalt des Prozesses "turtle.begin_fill ()" und "turtle.end_fill ()" Ich werde es zusammenstellen.

Wenn Sie es ausführen, sehen Sie ein Quadrat mit einer roten Linie und einer gelben Innenseite.

image.png

Sternform

Obwohl es sich um ein sternförmiges Programm handelt, hat es fast die gleiche Zusammensetzung wie ein quadratisches Programm. Die Änderungen bestehen darin, dass die Anzahl der Vorwärtsbewegungen 5 beträgt und der Winkel "360/5 * 2" beträgt.

import turtle

turtle.color('red', 'yellow')

turtle.begin_fill()
for _ in range(5):
    turtle.forward(100)
    turtle.right(360 / 5 * 2)
turtle.end_fill()

turtle.done()

image.png

Lassen Sie uns dreimal einen Stern erstellen und die Entfernung schrittweise erhöhen, um sich jedes Mal vorwärts zu bewegen.

import turtle

turtle.color('red', 'yellow')

turtle.begin_fill()
for i in range(5 * 3):
    turtle.forward(100 + i * 10)
    turtle.right(360 / 5 * 2)
turtle.end_fill()

turtle.done()

Dann wird eine schöne Figur wie unten gezeigt erstellt. Wenn Sie auf diese Weise verschiedene Schleifenverarbeitungen durchführen, hat diese eine andere Form und Sie können sie genießen.

image.png

Dreieck

In ähnlicher Weise bewegt sich das Dreieck dreimal vorwärts, und nachdem es sich einmal vorwärts bewegt hat, wird der Winkel geändert.

import turtle

turtle.color('red', 'yellow')

turtle.begin_fill()
for i in range(3):
    turtle.forward(100)
    turtle.left(360 / 3)
turtle.end_fill()

turtle.done()

Wenn Sie es ausführen, sehen Sie ein Dreieck.

image.png

Mal sehen, was passiert, wenn Sie den Winkel ein wenig verschieben, nachdem Sie sich einmal vorwärts bewegt haben, wie Sie es mit der Sternform getan haben.

import turtle

turtle.begin_fill()
for i in range(200):
    turtle.forward(200)
    turtle.left(360 / 3 + 10)
turtle.end_fill()

turtle.done()

Auf diese Weise wird es zu einer schönen Figur wie bei einer Sternform.

image.png

Ende

Es war eine grobe Skizze, aber das Obige ist die Erklärung, wie man damit umgeht.

Mit dieser Schildkrötengrafik können Sie sich selbst programmieren Da es leicht zu visualisieren ist, denke ich, dass nicht nur Kinder, sondern auch Erwachsene Spaß am Programmieren haben können.

Schließlich können Sie auch einen Baum wie den folgenden erstellen.

import turtle as t
foo = t.Turtle()
foo.left(90)
foo.speed(10)

def draw(l):
    if(l<10):
        return
    else:
        foo.forward(l)
        foo.left(30)
        draw(3*l/4)
        foo.right(60)
        draw(3*l/4)
        foo.left(30)
        foo.backward(l)

draw(100)

image.png

Recommended Posts

Lerne Python durch Zeichnen (Turtle Graphics)
[Python] Kapitel 03-02 Schildkrötengrafiken (Verhalten der Schildkröte)
[Python] Kapitel 03-01 Schildkrötengrafiken (Erstellen einer Schildkröte)
Wiedereinführung in Python-Dekoratoren ~ Lernen wir Dekoratoren nach Typ ~
[Python] Zeichnen eines Wirbelmusters mit einer Schildkröte
[Python] Zeichnung optimieren
Lerne Python-Gesten
Primzahlbeurteilung durch Python
Visualisierungsnotiz von Python
Kommunikationsverarbeitung durch Python
Diagrammzeichnung mit Python
Beamformer-Antwort von Python
Zeichnen mit Python Tinker
Lernen Sie die asynchrone Verarbeitung / Collouts von Python im Vergleich zu Node.js
Spracherkennung durch Python MFCC
Kerzentabelle mit Python zeichnen
Newcomer Trainingsprogramm von Python
Parametereinstellung durch Python Configparser
Pin Python von Conda verwaltet
Paiza Python Primer 1 Programmieren lernen
Keyword-Extraktion mit MeCab (Python)
Zahlen durch 3 Ziffern trennen (Python)
Markov-Schaltmodell von Python
Bildverarbeitung mit Python (Pillow)
Python wurde von C-Programmierern gestartet
Plattform (OS) Beurteilung durch Python
Sortieren nach Datum in Python
Lineares Zeichnen mit einer Matrix-Originalforschung von einem Neuerfinder der Python-Bildverarbeitung-