Python 乌龟用正方形画圆
Python Turtle drawing circle with squares
正在尝试用乌龟画这张图,卡在了最后一点画方成圆。 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 次。是否有我可以用来执行此操作的函数,或者我是否只需要进行大量数学运算并计算以绘制每条线?
这是两者的结合。您需要做一些数学运算才能找到每个方块的起点。但是,一旦将海龟移动到那个点并将其转向正确的方向,绘制四个边的语句块就可以正常工作了。
绘制正方形的最后一条边后,乌龟坐在外圈上,面向该点的半径为 45 度。
- 将乌龟转 60 度以穿过圆的浅弦。
- 将它移动到适当的距离以遍历该和弦(这就是您的数学用武之地)。
- 将海龟再转 60 度。您现在可以绘制下一个正方形了。
对每个添加的方块重复这些步骤。
尽管名称如此,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
会根据半径选择一个足够大的值。)
正在尝试用乌龟画这张图,卡在了最后一点画方成圆。 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 次。是否有我可以用来执行此操作的函数,或者我是否只需要进行大量数学运算并计算以绘制每条线?
这是两者的结合。您需要做一些数学运算才能找到每个方块的起点。但是,一旦将海龟移动到那个点并将其转向正确的方向,绘制四个边的语句块就可以正常工作了。
绘制正方形的最后一条边后,乌龟坐在外圈上,面向该点的半径为 45 度。
- 将乌龟转 60 度以穿过圆的浅弦。
- 将它移动到适当的距离以遍历该和弦(这就是您的数学用武之地)。
- 将海龟再转 60 度。您现在可以绘制下一个正方形了。
对每个添加的方块重复这些步骤。
尽管名称如此,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
会根据半径选择一个足够大的值。)