2017-10-11 82 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