Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用正方形画圆_Python_Drawing_Draw - Fatal编程技术网

Python 用正方形画圆

Python 用正方形画圆,python,drawing,draw,Python,Drawing,Draw,试着用乌龟画这幅画,只是把画正方形的最后一点画成了一个圆圈。 到目前为止,我已经试着画出每一条线的点,但是由于一些不一致的地方,我花了很长的时间。到目前为止,我得到的是 def square(side_length): for i in range(4): turtle.fd(side_length) turtle.lt(90) square (150) turtle.penup() ####New Square### turtle.l

试着用乌龟画这幅画,只是把画正方形的最后一点画成了一个圆圈。 到目前为止,我已经试着画出每一条线的点,但是由于一些不一致的地方,我花了很长的时间。到目前为止,我得到的是

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
将根据半径选择一个足够大的值。)