import turtle
bob = turtle.Turtle()
def polygon(t,length,n):
for i in range(n):
t.fd(length)
t.lt(360/n)
print(t)
polygon(bob,30,15)
turtle.mainloop()
如何通过调用面函数来制作圆圈?
答案 0 :(得分:0)
您已经编写了正确的代码来制作圆圈。在乌龟自己的circle()
方法的视图中,圆圈只是一个有60个边的多边形(如果圆是小的则更少)。这是关于感知,你需要多少方面才能分辨出来。
import turtle
def polygon(t, length, n):
for _ in range(n):
t.fd(length)
t.lt(360 / n)
bob = turtle.Turtle()
bob.penup()
bob.sety(-270)
bob.pendown()
polygon(bob, 30, 60)
turtle.mainloop()
现在您的问题是控制多边形/圆形的绘制以生成具有特定半径的多边形/圆形。由于圆圈太大,您的length
参数不会映射到半径。这里length
表示周长的1/60(1 / n),我们知道:
circumference = 2 * math.pi * radius
我们可以在circle(t, radius)
函数中计算length
需要radius
circumference/n
(即polygon(t, length, n)
),并使用这些参数调用circle()
。这是一个视觉比较,用乌龟的display: none;
方法(红色)绘制半径为100的圆圈,并用我刚才描述的解决方案绘制它(蓝色):
答案 1 :(得分:0)
import turtle
bob=turtle.Turtle()
bob.color('green', 'cyan')
bob.begin_fill()
def polygon(t,length, n):
for i in range(n):
bob.forward(length)
bob.left(360/n)
import math
def circle(t, r):
circum= 2*math.pi*r
n= int(circum/10)+1
length= circum/n
polygon(t,length, n)
circle(bob, 100)
bob.end_fill()
turtle.done()