查看我的圈子创建代码(turtle,python)

时间:2018-07-13 09:20:34

标签: python-3.x turtle-graphics

我是python的新手,刚开始接触乌龟。我编写了此圆形绘图代码,并且有几个问题:

import turtle
jo = turtle.Turtle()
def polygon(t, r, n, l):
    for i in range(30):
        jo.fd(n * l)
        jo.lt(r * 2 * 3.14)
print(polygon(jo, 2, 3, 4))
turtle.done()

1)我真的不明白我写的代码是如何画一个圆圈的。

2)还有其他方法可以用类似的语法绘制圆吗?

3)这段代码是否还可以,或者我需要对其进行改进?

1 个答案:

答案 0 :(得分:0)

  

我真的不明白我写的代码是如何画圆的。

也许是偶然的机会。您会注意到,绘制的圆的半径(〜27)与传递给polygon()函数(2)的半径无关。

您将弧度传递给left()函数:

jo.lt(r * 2 * 3.14)

尽管需要学位,除非另有说明。您打印不返回任何内容的函数的结果:

print(polygon(jo, 2, 3, 4))

您的乌龟最后会超调,重画一小部分圆圈。最后,您将乌龟 argument 传递给polygon()函数,但忽略它,而是使用 global 一个。

  

此代码是否正确,或者我需要对其进行改进?

我会选择类似的东西:

from math import pi
from turtle import Turtle, Screen

TWO_PI = 2 * pi

def polygon(turtle, radius, sides):
    circumference = radius * TWO_PI

    for _ in range(sides):
        turtle.fd(circumference / sides)
        turtle.lt(TWO_PI / sides)

jo = Turtle()
jo.radians()

polygon(jo, 100, 30)

screen = Screen()

screen.mainloop()
  

还有其他方法可以用类似的语法画圆吗?

from turtle import Turtle, Screen

jo = Turtle()

jo.circle(100, steps=30)

screen = Screen()

screen.mainloop()