2017-09-26 212 views
0

我想這篇日誌基地2圖:繪製使用Python烏龜圖形

if wave_type == "log": 
    emily.up() 
    emily.goto(0,1) 
    emily.down() 
    for x in range(100): 
    y = math.log(x)/math.log(2) 
    elaine.goto(x, y) 

,但沒有奏效。請幫忙

+0

什麼是艾米莉和伊萊恩?當您嘗試運行該程序時會得到什麼錯誤?請閱讀https://stackoverflow.com/help/how-to-ask – blueenvelope

回答

0

Log(0)未定義。因此,你的代碼會在for循環的第一次迭代時出錯(x將爲0)。

也許你想要範圍(1,100)?或者更好的是在1附近有更多的x值,因爲這是圖形變化最平滑的情節的地方。

1

這裏是一個粗略的開始 - 因爲range()無法處理浮動,我們使用10倍的範圍,然後在使用該值時除以10。 (看看arange()numpy作爲一種解決方法。)我還畫出了一個較小的區域,並使用setworldcoordinates()來強制執行該操作,所以我們可以看到圖中有趣的部分穿過X軸:

import math 
from turtle import Turtle, Screen 

screen = Screen() 
screen.setworldcoordinates(0, -5, 10, 5) 

emily = Turtle(visible=False) 
emily.forward(10) 
emily.penup() 

for x in range(1, 100): 
    y = math.log(x/10)/math.log(2) 
    emily.goto(x/10, y) 
    emily.pendown() 

screen.exitonclick() 

您可以在Y軸填料,添加刻度標記,標籤軸,提高分辨率,等等,你認爲合適:

enter image description here