编写一个名为circle的函数,它将turtle,t和radius作为参数

时间:2017-07-07 10:50:58

标签: python turtle-graphics

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()

如何通过调用面函数来制作圆圈?

2 个答案:

答案 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()

enter image description here

现在您的问题是控制多边形/圆形的绘制以生成具有特定半径的多边形/圆形。由于圆圈太大,您的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的圆圈,并用我刚才描述的解决方案绘制它(蓝色):

enter image description here

答案 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()