我創建了一個程序中使用龜圖形繪製dragon curve ..但我的結果並沒有真正看起來像圖片確實在鏈接:龍曲線在Python
一個問題,我注意到的是我想將生成的字符串保存到變量newWord ..但我不能在我的函數drawit中使用newWord作爲參數,它實際上是根據字符串繪製線條。當我嘗試這樣做時,出現錯誤「全局變量newWord未定義」。所以在我的代碼中,我只是複製了newWord的輸出來繪製,而沒有真正傳遞我想要傳遞的變量。
我不確定問題出在我的createWord函數上,還是我在drawit中沒有「足夠」。
import turtle
def createWord(max_it, axiom, proc_rules):
word = axiom
t = 1
while (t < max_it):
word = rewrite(word, proc_rules)
t=t+1
newWord = word
def rewrite(word, proc_rules):
wordList = list(word)
for i in range(len(wordList)):
curChar = wordList[i]
if curChar in proc_rules:
wordList[i] = proc_rules[curChar]
return "".join(wordList)
def drawit(newWord, d, angle):
newWordLs = list(newWord)
for i in range(len(newWordLs)):
cur_Char = newWordLs[i]
if cur_Char == 'F':
turtle.forward(d)
elif cur_Char == '+':
turtle.right(angle)
elif cur_Char == '-':
turtle.left(angle)
else:
i = i+1
#sample test of dragon curve
def main():
createWord(10, 'FX', {'X':'X+YF','Y':'FX-Y'})
drawit('FX+YF+FX-YF+FX+YF-FX-YF+FX+YF+FX-YF-FX+YF-FX-YF', 20, 90)
if __name__=='__main__': main()
謝謝,我明白你的意思..但就是爲什麼我的畫面是如此愁容滿面的唯一原因,我認爲印「字解「,然後將它用作drawit中的參數將導致與使用變量相同的結果 – mdegges
@Michele'我不確定問題出在我的createWord函數上,還是我只是在drawit中沒有」充分繪製「 。這幾乎肯定是問題 - 你的龍的曲線只是一個嬰兒!它看起來像[這個](http://upload.wikimedia.org/wikipedia/commons/9/97/Dragon_curve_iterations_%282%29.svg) 。嘗試傳遞一個更長的字符串到drawit()。 –
我能弄明白!我傳遞的只是一個字符串,當它應該被傳遞給我的createWord()函數中的字符時調用。它只需要2行來解決! Arrrgh – mdegges