Я пытался масштабировать Turtle рисунок на одной оси, и после некоторого тестирования мне удалось следующую функцию:Python Черепаха позиционные ошибки
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)
Вывод из этих тестов должны быть просто четыре перекрывающихся квадратов масштабируется по оси y, но по какой-то очень странной причине Python случайно меняет свои значения Y до и после движения на 1 единицу, когда они должны быть одинаковыми. (например, линия, выведенная горизонтально, имеет oldYcor из 99, но newYcor из 100), что полностью нарушает мой код и создает квадраты на месте.
Другая странная вещь, я заметил, что без преобразования ycor черепах() к междунару, операторы печати отображать некоторые странные значения, которые не делают никакого смысла для меня ...
Я признателен за любую помощь !!