我試圖以xy(2D)座標的形式生成螺旋星系 - 但數學不是我的強項。通過公式描述螺旋來產生XY座標
我已經收集從上螺旋一個excellent source以下:
半徑r(t)和角t爲用於 simpliest螺旋,阿基米德螺線成比例的。因此,公式爲:
(3)極座標方程:r(t)= at [a是常數]。
從這如下
(2)參數的形式:X(t)=在cos(T),Y(T)=在SIN(t)的,
(1)中環 方程:X 2 + Y 2 =A²[ arc tan(y/x)] 2。
This question排序上眼星系產生,但反應是分散的,仍然是我所需要的(又名,我的數學啞的頭腦無法理解它們)過於複雜。
本質上,我需要做的是循環PHP〜5000次的螺旋公式,以在513x513 XY網格上生成點。網格的大小和所需點數可能會在未來發生變化。更好的辦法是將這些點權衡到螺旋的起源,頻率和偏離精確數學公式的距離,類似於星系的實際外觀。
這篇數學論文談到了a formula that describes the structure of spiral galaxies。
完全失去我的是如何將一個數學公式轉換成我可以在PHP中循環的東西!
感謝您的幫助,Chris。這恰好回答了我關於循環參數方程的問題。我的下一個任務是調整公式來堅持離散網格,我不知道這是可能的。 – Nick
假設你的螺旋居中,x(t)的最大值不能超過網格寬度的一半。所以,'a'的值需要<='gridWidth /(upperBoundOf $ t * 2)'。您爲t選擇的範圍表示您繪製了多少個螺旋線。例如,如果t從0變爲2PI,則形成一個循環。 0到50幾乎是8個循環。這就是爲什麼t必須作爲一個變量留下來,只有你可以選擇一個合適的值(沒有人,但你知道你想要多少個循環)。 for循環的步長由'rangeOf $ t/numDesiredPointsToDraw'決定 – goat