Unser grundlegendes Verständnis der Python-Sprache besteht darin, dass wir wissen, dass wir Funktionen programmieren, Iterationen mit Hilfe von Python-Schleifen einführen und mithilfe von bedingten Anweisungen wie entscheiden können, welches Programm ausgeführt werden soll if, elifUnd else. Aber Python ist weitaus leistungsfähiger; Es kann auf Dateien zugreifen und diese verarbeiten, interessante Spiele erstellen, wissenschaftliche Konzepte simulieren, große Datenmengen verarbeiten, Modelle für maschinelles Lernen generieren und vieles mehr!
In diesem Artikel verwenden wir Python, um mithilfe des Python-Moduls Turtle grafische Ausgaben zu erstellen. Dies ist ein anfängerfreundliches Tutorial, das Ihnen zeigt, wie Sie mit Python Formen zeichnen und Zeichnungen programmieren. Um fortzufahren, ist es wichtig, ein gründliches Verständnis der Python-Grundlagen zu haben: grundlegende Anweisungen, Schleifen, Klassen und Objekte sowie den Zugriff auf Module.
Pythons Turtle-Modul
Der turtle Modul in Python ist ein Modul, das grafische Ausgaben durch Code ermöglicht. Das Modul bietet einen Zeiger, der als Schildkröte (daher der Title) angepasst werden kann. Die Bewegung der Schildkröte hinterlässt eine Spur, zeichnet Formen und erzeugt visuelle Muster auf dem Bildschirm. Das Modul wird mit der Python-Standardbibliothek installiert, sodass wir das Modul nicht selbst installieren müssen. Auf seine Klassen und Funktionen kann wie folgt leicht zugegriffen werden import Stellungnahme:
from turtle import *
Lassen Sie uns nun anhand der offiziellen Python-Dokumentation tief in dieses Modul eintauchen: https://docs.python.org/3/library/turtle.html
Grundbefehle der Schildkröte
Wie aus der oben verlinkten Dokumentation hervorgeht, sind die grundlegenden Befehle, die wir unserer Schildkröte geben können, die folgenden:
ahead()Diese Funktion weist die Schildkröte an, sich um eine bestimmte Distanz vorwärts zu bewegen. Als Argument wird ein ganzzahliger Wert verwendet.backward()Diese Funktion weist die Schildkröte an, sich um eine bestimmte Distanz rückwärts zu bewegen. Es akzeptiert auch einen ganzzahligen Wert als Argument.left()Dies weist die Schildkröte an, sich um einen bestimmten Winkel nach hyperlinks zu drehen, der der Funktion als Argument übergeben wurde.proper()Dies weist die Schildkröte an, sich um einen bestimmten Winkel nach rechts zu drehen, der der Funktion als Argument übergeben wurde.colour()Dadurch wird die Farbe der Schildkröte entsprechend der Zeichenfolge geändert, die dieser Funktion als Argument übergeben wurde (z. B. „rosa“). Auf Farbnamen kann über zugegriffen werden Hier.width()Dadurch wird die Breite des Zeigers um den ganzzahligen Wert geändertexitonclick()Dadurch können wir den Bildschirm schließen, der als Ausgabe unseres Codes generiert wurde, indem wir einfach auf den Bildschirm klicken.
Führen Sie den folgenden Code aus und ändern Sie ihn entsprechend Ihren Anforderungen, um zu verstehen, was die Schildkröte tut, wenn jede der oben genannten Funktionen aufgerufen wird.
from turtle import *
colour("pink")
width(5)
ahead(100)
left(45)
colour("blue")
width(4)
ahead(100)
left(45)
ahead(20)
colour("crimson")
width(4)
ahead(60)
left(45)
backward(50)
colour("yellow")
width()
ahead(100)
proper(45)
exitonclick()

Verwendung von OOP Turtle Graphics
Nachdem wir nun gesehen haben, wie die Grundfunktionen im Modul funktionieren und wie die Ausgabe generiert wird, werden wir das in der Dokumentation erläuterte Konzept der objektorientierten Programmierung verwenden, um unser Verständnis zu vertiefen. Das Konzept von Klassen und Objekten, die durch den Konstruktor erstellt werden, erleichtert die Programmierung großer komplexer Programme mit Variablen mit ähnlichen Parametern, aber unterschiedlichen Werten. Hier kommt OOP ins Spiel, und durch die Integration in das Modul können wir mehr als eine Schildkröte gleichzeitig verwenden.
Um voranzukommen, ist es wichtig, über ein grundlegendes Verständnis von Klassen und Objekten zu verfügen, insbesondere darüber, wie Objekte mit ihren Attributen und Methoden erstellt werden können.
Lassen Sie uns unsere Schildkröten- und Bildschirmobjekte erstellen:
from turtle import Turtle, Display screen
my_turtle = Turtle()
print(my_turtle)

Wie aus dem Screenshot oben ersichtlich ist, wurde das Schildkrötenobjekt erstellt und seine Place definiert. Jetzt werden wir die Dokumentation verwenden, um unsere Schildkröte anzupassen.
Wir definieren die Kind, Farbe und Breite unserer Schildkröte mit dem folgenden Code:
my_turtle.form("turtle")
my_turtle.colour("coral1")
my_turtle.width(4)
Lassen Sie uns auch das Bildschirmobjekt definieren und anpassen.
display = Display screen()
display.title('Drawing Shapes with Turtle Module')
display.bgcolor("white")
display.exitonclick()

Das Bildschirmobjekt wurde oben definiert und seine Titel- und Hintergrundfarben wurden entsprechend festgelegt. Kommen wir nun zum Hauptziel dieses Tutorials!
Formen zeichnen
Jetzt lernen wir, wie man mit unserer maßgeschneiderten Schildkröte verschiedene Formen zeichnet!
Dreieck
Die erste Kind, die wir zeichnen werden, ist ein Dreieck. Dies kann mit den oben besprochenen Grundfunktionen gezeichnet werden: vorwärts und rechts. Wir wissen, dass ein Dreieck aus drei Seiten besteht, und bei einem gleichseitigen Dreieck beträgt der Winkel zwischen jeder Seite 60. Wir können dieses Dreieck mit den folgenden Codezeilen zeichnen:
my_turtle.ahead(200)
my_turtle.proper(120)
my_turtle.ahead(200)
my_turtle.proper(120)
my_turtle.ahead(200)
my_turtle.proper(120)

Wie man sieht, ist es uns mit Hilfe unserer Schildkröte gelungen, ein Dreieck zu erschaffen. Beachten Sie, dass wir den Winkel, um den sich die Schildkröte nach rechts bewegt, auf 120 eingestellt haben. Das würde bedeuten, dass der verbleibende Winkel, der zum Innenwinkel des Dreiecks werden würde, 180 – 120 = 60 wäre. Das warfare unser Ziel. Für die nächste Kind werden wir ähnlich vorgehen.
Quadrat
Jetzt zeichnen wir mit unserer Schildkröte ein Quadrat. Da ein Quadrat vier Seiten hat, verwenden wir die Vorwärtsbewegungsmethode viermal, wobei der Winkel immer dann auf 360/4 = 90° eingestellt wird, wenn wir die richtige Methode verwenden. Lassen Sie uns auch die Farbe der Schildkröte in dunkles Türkis ändern (Schildkrötenfarben)
Hier ist unser Code zum Zeichnen eines Quadrats:
my_turtle.colour("darkish turquoise")
my_turtle.ahead(200)
my_turtle.proper(90)
my_turtle.ahead(200)
my_turtle.proper(90)
my_turtle.ahead(200)
my_turtle.proper(90)
my_turtle.ahead(200)
my_turtle.proper(90)

Pentagon
Als Nächstes erstellen wir ein Fünfeck, eine 5-seitige Kind mit einem Winkel zwischen den beiden Seiten von 108. Das bedeutet, dass der Außenwinkel 72 beträgt. Wir werden das Obige in unseren Code codieren, dieses Mal mit 5 Codezeilen für die 5 Seiten. Wir werden auch die Farbe unserer Schildkröte ändern.
my_turtle.colour("spring inexperienced")
my_turtle.ahead(150)
my_turtle.proper(72)
my_turtle.ahead(150)
my_turtle.proper(72)
my_turtle.ahead(150)
my_turtle.proper(72)
my_turtle.ahead(150)
my_turtle.proper(72)
my_turtle.ahead(150)
my_turtle.proper(72)

Wie Sie im Codeblock oben sehen können, haben wir die Vorwärtsbewegung von 200 auf 150 reduziert, damit das Fünfeck innerhalb des Bildschirms gezeichnet werden kann.
Aufbau des Algorithmus
Wir haben das Turtle-Modul verwendet, um ein Dreieck, ein Quadrat und ein Fünfeck zu zeichnen. Wie wir oben sehen können, können wir leicht ein Muster erkennen. Die Schildkröte bewegt sich so viele Seiten vorwärts und nach rechts, wie es gibt. Um ein Dreieck, additionally eine dreiseitige Kind, zu zeichnen, bewegt sich die Schildkröte vorwärts, dann nach rechts, dann nach vorne, dann nach rechts, dann wieder nach vorne und wieder nach rechts, insgesamt 3 Sätze vorwärts und rechts. Für ein Quadrat wird die gleiche Menge viermal ausgeführt, additionally so viele Seiten, wie die Kind hat. Und das Gleiche gilt für ein Fünfeck. So können wir ein Muster wiederkehrender Vorwärts- und Rechtsfunktionen erstellen. Wir können einen festen Wert für die zurückgelegte Strecke festlegen, wann immer sich die Schildkröte vorwärts bewegt. Was den Winkel betrifft, der der richtigen Methode gegeben wird, so hängt die Häufigkeit, mit der die Aussagen wiederholt werden, von der Anzahl der Seiten in der Kind ab, ebenso wird der Winkel auch durch die Anzahl der Seiten bestimmt. Dieser Außenwinkel lässt sich leicht nach folgender Formel berechnen:
Außenwinkel = 360 / Anzahl der Seiten
Der Außenwinkel für ein Dreieck beträgt 360/3 = 120. Der Außenwinkel für ein Quadrat beträgt 360/4 = 90 und so weiter und so weiter. Dies wird verwendet, um die richtige Methode zu füttern.
Definieren der Funktion
Jetzt definieren wir eine generische Funktion, die die Anzahl der Seiten einer Kind verwendet, um die Kind zu zeichnen. Wenn wir als Argument 3 angeben, entsteht ein Dreieck. Wenn wir 8 als Argument angeben, entsteht ein Achteck usw.
def draw_shapes(num_sides):
angle = 360 / num_sides
for i in vary(num_sides):
my_turtle.ahead(50)
my_turtle.proper(angle)
Die Funktion berücksichtigt die Anzahl der Seiten, berechnet den Außenwinkel, der der Rechtsmethode zugeführt wird, und führt die Vorwärts- und Rechtsmethode so oft aus, wie es Seiten gibt. Angenommen, wir möchten ein Achteck zeichnen, rufen die Funktion auf und geben der Funktion die Zahl 8 als Argument an. Wir können auch die Farbe der Kind definieren:
my_turtle.colour("pale violet crimson")
draw_shapes(8)

Zeichnen von Formen innerhalb eines Bereichs
Jetzt verwenden wir die oben definierte Funktion und verwenden die for Schleife, um eine Reihe von Zahlen zu durchlaufen, die jeweils einer Seite entsprechen. Wir beginnen mit 3 für ein Dreieck und unsere Schildkröte zeichnet so viele Formen, wie wir möchten. Angenommen, wir möchten ein Dreieck, ein Quadrat, ein Fünfeck usw. bis hin zu einem Zehneck zeichnen, durchlaufen wir die Zahlen 3 bis 11, da 11 im Bereich einer for-Schleife ausgeschlossen ist.
Fügen wir auch die Möglichkeit hinzu, jede Kind mit einer anderen Farbe zu zeichnen. Dazu erstellen wir eine Liste mit Farben und die for-Schleife durchläuft auch die Farben in der Liste.
my_colors = ("darkish grey", "scorching pink", "midnight blue", "orange", "indigo", "darkish sea inexperienced", "tan", "pale violet crimson", "sky blue", "spring inexperienced")
Sobald wir unsere Farbliste erstellt haben, ändern wir unsere Funktion, um die Farbänderungsfunktion einzuschließen, und durchlaufen dann den Bereich, um Formen zu zeichnen.
def draw_shapes(num_sides):
angle = 360 / num_sides
my_turtle.colour(my_colors(3-num_sides))
for i in vary(num_sides):
my_turtle.ahead(75)
my_turtle.proper(angle)
for shape_size_n in vary(3,11):
draw_shapes(shape_size_n)

Abschluss
In diesem Tutorial haben wir das Turtle-Modul untersucht, seine Grundfunktionen und das OOP-Konzept verstanden und es zum Erstellen von Formen verwendet. Hierbei handelte es sich um ein Python-Tutorial für Fortgeschrittene, das grundlegende Kenntnisse über Klassen und Objekte, das Definieren und Aufrufen von Funktionen sowie das Anpassen von Farben mithilfe von Trinket erforderte. Dies ist ein einfaches Beispiel dafür, was mit dem Turtle-Modul gemacht werden kann. Wir können das Modul weiter erkunden und dadurch viel Codierung lernen!
