【问题标题】:Python Turtle drawing circle with squaresPython Turtle 用正方形画圆
【发布时间】:2018-09-24 19:34:35
【问题描述】:

试图用turtle画这张图,只是卡在最后一点画正方形变成圆形了。 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 次。有没有我可以使用的函数来执行此操作,还是我只需要进行大量数学运算并计算以绘制每条线?

【问题讨论】:

    标签: python drawing draw


    【解决方案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 会根据半径选择一个足够大的值。)

    【讨论】:

      【解决方案2】:

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

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

      • 将乌龟旋转 60 度,使其面对圆形的浅弦。
      • 将其移动适当的距离以遍历该和弦(这是您的数学的用武之地)。
      • 将乌龟再转 60 度。您现在可以绘制下一个正方形了。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-06-11
        • 1970-01-01
        • 1970-01-01
        • 2014-12-22
        • 2020-01-02
        • 1970-01-01
        • 2022-08-04
        • 2018-10-21
        相关资源
        最近更新 更多