我创建了一个程序中使用龟图形绘制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