2017-07-07 41 views
-5
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() 

如何通過調用多邊形函數來創建一個圓?編寫一個函數叫做circle,它需要一隻烏龜t和半徑r作爲參數

+0

我投票關閉這一問題作爲題外話,因爲這似乎是功課。 –

+0

@HannounYassir,這是一個正確的理由來關閉這個問題給出[可以問作業](https://meta.stackoverflow.com/q/334822/5771269)社區政策嗎?這篇文章展示了迄今爲止解決這個問題所做的工作,並且在描述解決這個問題的困難時只是略微缺乏。你從事哪些問題指導方針? – cdlane

+0

@cdlane給我的作業答案可能會對學生造成更多的傷害而不是好處。話雖如此,如果有足夠的合理的嘗試來解決問題,我認爲可以提供幫助。 –

回答

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)。這裏有一個直觀的比較繪製半徑100圈與烏龜的circle()方法(紅色),並與解決方案圖紙,我只是描述(藍色):

enter image description here

相關問題