我是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)这段代码是否还可以,或者我需要对其进行改进?
答案 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()