Hoffentlich kann ich das gut erklären. Ich verwende zur Zeit Hilfsfunktionen, um einen sechsstrahligen Stern im Turtle-Grafikfenster von Python zu zeichnen. Zuerst mussten wir eine Funktion erstellen, um ein Dreieck zu zeichnen. Hier ist mein Code:Verwenden von Turtle in Python zum Zeichnen von sechsspitzigen Sternen mit unterschiedlichen Seitenlängen
import turtle
wn = turtle.Screen()
tess = turtle.Turtle()
tess.speed(30)
def triangle(sz):
for i in range(3):
tess.fd(sz)
tess.lt(120)
Dann mussten wir die Dreiecksfunktion verwenden, um einen sechszackigen Stern zu zeichnen. Hier ist mein Code:
def sixPtdStar(sz):
triangle(sz)
tess.lt(90)
tess.pu()
tess.fd(80)
tess.rt(90)
tess.fd(120)
tess.pd()
tess.rt(180)
triangle(sz)
Nun, für mich läuft das alles reibungslos. Aber die Parameter für unseren Testlauf dieser beiden Funktionen waren: sz = 120 (also würden wir in der Shell sixPtdStar (120) eingeben und es würde laufen. Aber dann mussten wir eine Reihe von Sternen mit einer neuen Funktion zeichnen, und . dann eine BOX Umriss von diesen Reihen von Sternen, in einer anderen Funktion Hier ist mein Code:
def rowOfStars(numInRow,sz):
for i in range(numInRow):
sixPtdStar(sz)
tess.pu()
tess.lt(90)
tess.fd(80)
tess.lt(90)
def sqrOfRows(numInRow, sz):
for i in range(4):
rowOfStars(numInRow, sz)
tess.rt(90)
Während dies die Aufgabe erfüllt, nur tut sie dies, wenn die sz = 120. Und für unsere Testlauf auf den rowOfStars Funktion, die Parameter sollen (6, 72) sein und für den Testlauf auf der sqrOfRows-Funktion sollen unsere Parameter sein (6, 36).
Also mein Problem ist das. Wie kann ich das machen Arbeit egal was Sz gleich ist Wenn ich es so laufen lasse (mit (6, 72) für rowOfStars oder (6, 36) f oder sqrOfRows), der Stift bewegt sich zu weit, weil die Dreiecke nicht mehr so groß sind.
Bitte lassen Sie mich wissen, wenn mehr Informationen benötigt werden! Vielen Dank! (Ich benutze Python 3.5.2)
Danke alle so sehr. Ich wusste, dass das Hauptproblem in der Skalierung meiner Formen lag, weil ich den Stift so bewegt hatte, dass er in die "richtige" Position kam. Und auch Danke für die kleinen Verbesserungen und Ratschläge hier und da, wie zB "Schnellster" anstatt einer Nummer! Ich bin sehr dankbar!! – maio123maio