2017-10-11 47 views
1

这是我已经有的代码,但它是说我需要定义我知道我需要的'多边形',但不完全确定我有多少种不同的方式一直在试图给我错误。如何在Python中使用龟绘制圆3

import turtle 
import math 

apple=turtle.Turtle() 

def draw_circle(t, r): 
    circumference = 2 * math.pi * r 
    n = 50 
    length = circumference/n 
    polygon(t, n, length) 

draw_circle(apple, 15) 

turtle.exitonclick() 
+3

不应该是polygon be turtle.polygon? – OldBunny2800

+0

不幸的是我也试过,我得到了错误“AttributeError:模块'乌龟'没有属性'多边形'” –

+0

似乎你正在做一个教程。你能包含链接吗? – combinatorist

回答

0

如果你确实需要定义一个多边形。

from turtle import * 
import math 

apple = Turtle() 

def polygon(t, n, length): 
    for i in range(n): 
     left(360/n) 
     forward(length) 

def draw_circle(t, r): 
    circumference = 2 * math.pi * r 
    n = 50 
    length = circumference/n 
    polygon(t, n, length) 
    exitonclick() 

draw_circle(apple, 30) 
+0

是的,这正是我想要的,谢谢! :D –

+0

太好了。然后投票。 – msbodw001

3

使用圆法

import turtle 
import math 

apple=turtle.Turtle() 

def draw_circle(t, r): 
    turtle.circle(r) 

draw_circle(apple, 15) 

turtle.exitonclick() 
+0

参数't'用于什么? – OldBunny2800

+0

是的,你不需要它 – uphill

0

这里是多边形的函数:

def drawPolygon (ttl, x, y, num_side, radius): 
    sideLen = 2 * radius * math.sin (math.pi/num_side) 
    angle = 360/num_side 
    ttl.penup() 
    ttl.goto (x, y) 
    ttl.pendown() 
    for iter in range (num_side): 
    ttl.forward (sideLen) 
    ttl.left (angle) 

这里是你如何使用它:

def main(): 
    # put label on top of page 
    turtle.title ('Figures') 

    # setup screen size 
    turtle.setup (800, 800, 0, 0) 

    # create a turtle object 
    ttl = turtle.Turtle() 

    # draw equilateral triangle 
    ttl.color ('blue') 
    drawPolygon (ttl, -200, 0, 3, 50) 

    # draw square 
    ttl.color ('red') 
    drawPolygon (ttl, -50, 0, 4, 50) 

    # draw pentagon 
    ttl.color ('forest green') 
    drawPolygon (ttl, 100, 0, 5, 50) 

    # draw octagon 
    ttl.color ('DarkOrchid4') 
    drawPolygon (ttl, 250, 0, 8, 50) 

    # persist drawing 
    turtle.done() 

main() 

不要忘记添加import turtle, math

+0

谢谢!现在比我的水平稍微复杂一点,我现在是_veeeeery_ intro level haha​​ –

+0

没问题:-)。如果您需要任何帮助,请告诉我。 – BlooB