昨天剛剛瞭解了Logo。出生在九十年代我從來沒有遇到過它。於是我開始使用約書亞貝爾寫的在線Logo Interpreter,我決定編寫一個circle
函數來製作同心圓。這是我寫的:生成星空的算法
cs
to circle
penup forward :radius right 90
pendown repeat 360 [forward 3.14 * :radius/180 right 1]
penup left 90 back :radius pendown
end
make "radius 30
repeat 160 [circle make "radius :radius + 30]
有趣的是繪圖畫布是一個環形陣列。因此這些圈子最終重疊。通過繪製160個同心圓與30的倍數增加半徑我最終得到的圖像是這樣的:
這確實是驚人的。乍一看,它看起來像是一張真實的夜空圖片,它讓我想到了 - 是否有一個通用算法來繪製一個星空?
順便說一句,如果你仔細看,你可以看到一個網格30 x 30
像素正方形。邊界是黑色的,所以有點難以注意。
我沒有「做」標誌,我不知道用於生成星空的一般算法,但如果我要「自己動手」,我只需要直接解決方案,即生成一個隨機x,一個隨機y並將其設置爲一個星的位置。我會一直這樣做,直到我達到一些哨點值並退出。我之前做過,而且我通常會得到合理的結果(即它看起來像一個「真實」的星空)。 – Frecklefoot 2013-05-06 18:33:26
這**確實令人驚訝。謝謝!你有沒有想過自己? – likeitlikeit 2013-05-14 00:14:35
@likeitlikeit - 我只是在一個環形陣列上繪製同心圓。結果看起來像一個星空。 =) – 2013-05-14 14:30:01