ich versucht habe eine Schildkröte Zeichnung durch eine einzige Achse und nach einigen Tests zu skalieren, konnte ich die folgende Funktion:Python Schildkröte Positional Fehler
def DrawSquare(length=50.0, Yscale=2):
setheading(0)
for n in range(0,4):
oldYcor = int(ycor())
oldPos = pos()
penup()
forward(length)
newYcor = int(ycor())
print 'OldYcor = ', int(oldYcor)
print 'NewYcor = ', int(newYcor)
print '------'
setpos(oldPos)
pendown()
if (oldYcor == newYcor):
print 'dont scale'
forward(length)
elif (oldYcor != newYcor):
print 'scale'
forward(length*Yscale)
left(90)
penup()
speed('slowest')
goto(0,0)
#TESTS
DrawSquare(50.0, 2)
DrawSquare(50.0, 2)
DrawSquare(50.0, 2)
DrawSquare(50.0, 2)
Der Ausgang dieser Tests nur vier überlappende Quadrate sein sollte skaliert auf der Y-Achse, aber aus irgendeinem sehr seltsamen Grund ändert Python zufällig meine Y-Werte vor und nach einer Bewegung um 1 Einheit, wenn sie gleich sein sollten. (Zum Beispiel hat eine Linie, die horizontal gezeichnet wird, ein altes Ycor von 99, aber ein neues Ycor von 100), was meinen Code komplett unterbricht und die Quadrate fehl am Platz erzeugt.
Eine weitere seltsame Sache, die ich bemerkt, dass die Schildkröte ycor ohne Konvertierung() in einen int, die print-Anweisungen einige bizarre Werte anzuzeigen, die jeden Sinn für mich nicht ...
ich jede Hilfe dankbar !!