Python Turtle用正方形绘制圆

时间:2018-09-24 19:34:35

标签: python drawing draw

试图用乌龟画这幅画,只是停留在画正方形的最后一点成一个圆上。 squares to make circle 到目前为止,我尝试仅画出每条直线的点,但由于存在一些不一致之处,所以需要花费很长时间。到目前为止,我是

def square(side_length):
    for i in range(4):
        turtle.fd(side_length)
        turtle.lt(90)

square (150)

turtle.penup()
        ####New Square###
turtle.left(90)
turtle.forward(75)
turtle.left(90)
turtle.forward(30)
turtle.right(180)
turtle.right(45)
turtle.pendown()


def square(side_length):
    for i in range(4):
        turtle.fd(side_length)
        turtle.lt(90)
square (150)

这将绘制两个正方形。现在,我只需要找出一种方法可以将两个正方形顺时针旋转30度4次。我可以使用一个函数来执行此操作吗?还是只需要做大量数学运算并计算得出每条直线?

2 个答案:

答案 0 :(得分:1)

尽管其名称为turtle.circle,但可用于绘制其他常规多边形。它也可以仅用于绘制多边形的一部分。结合上下提笔,您可以轻松绘制一系列共享同一中心的旋转形状。

例如,

 for i in range(19):
     turtle.circle(100, 360, 4)  # draw a square
     turtle.penup()
     # "draw" 10 degrees of the same circle, with the pen up, just to move the pen
     turtle.circle(100, 10, 4)
     turtle.pendown()

(圆只是具有足够多的边可以逼近圆的多边形。如果未明确指定第三个参数,turtle将根据半径选择足够大的值。)

答案 1 :(得分:0)

这是两者的结合。您需要做一些数学运算才能找到每个正方形的起点。但是,一旦将乌龟移到该点并将其转到正确的标题,则绘制四边的语句块就可以正常工作。

绘制正方形的最后一侧后,乌龟坐在外圆上,与该点的半径成45度角。

  • 将海龟旋转60度,使其面对圆圈的浅弦。
  • 将其移动适当的距离以遍历该和弦(这是您的数学运算法则所在的位置)。
  • 将乌龟再转60度。现在您可以绘制下一个正方形了。

为每个添加的方块重复这些步骤。