龟弯曲线

时间:2014-09-26 16:34:43

标签: python-2.7 turtle-graphics

在下面的代码中,绘制的第二个框搞砸了。它几乎就像线条不是直线上下画,而是略微倾斜。我试图制作样本MCVE。

import turtle, os

turtle.speed(0)
iOneAndHalve = 1.5    # Increasing to 1.501 makes a big difference
Q = 0
iSize = 80

def box(x):
    for i in xrange(x):
        turtle.forward(i+1)
        turtle.left(90)
    global Q
    Q = i

box(iSize)

turtle.up()
turtle.forward(iOneAndHalve*Q)    # <----------
turtle.down()

box(iSize)

os.system("pause")

如果我将iOneAndHalve设置为1.501而不是1.5,问题就解决了。框的大小(因此Q似乎没有区别。)

我不知道为什么会这样做,这闻起来像是一个便宜的修复。

造成这种(不稳定)行为的原因是什么?我应该如何正确解决这个问题?

注意:我意识到编码的风格是不合标准的。我担心这是MCVE的结果。

1 个答案:

答案 0 :(得分:2)

这似乎是舍入问题,因为用turtle.forward(iOneAndHalve*Q)替换turtle.forward(round(iOneAndHalve * Q, 0))可以解决问题。