在一個winform應用程序中,我必須根據配置繪製一些圖形。基於方形中心+角度獲取正方形上的X,Y座標
我正在尋找最乾淨的方法來獲取X; Y座標位於一個正方形,基於角度。這個角度(度)由數學慣例給出(右邊0°,頂部90°...)並表示我們搜索這些座標的方向。
我知道這是不是很清楚,所以我創造了一些原理,這將是更清潔:
我知道什麼:廣場的一面是:2*R
,R則代表的半徑內圈。
我正在尋找紅色圓圈中的X; Y座標。
現在我已經即解決這個問題取決於角度的算法:
A) 如果我們有305°和45°之間的角度,我們知道X值(= R) ,並計算Y:
Y = R/cos(α) * sin(α)
B) 如果我們有45°和135°之間的角度,我們知道的Y值(= R),並計算X:
...
首先,我不確定它會在所有情況下都能正常工作,並且它使4次幾乎相同的代碼。
你有關於如何使這個更清潔的想法?
(我developp在C#.NET,所以如果你知道的東西,可以幫助我在庫,可能是好的)
編輯 也許我找到了一個簡潔的方式,你認爲它會工作或有簡單嗎? 這個想法是轉換笛卡兒的極座標值。爲了做到這一點,我們必須計算幅度。
αTemp = α % Math.PI /2; //We put it in the first quarter, it will not change the amplitude.
amplitude = R /cos(αTemp);
的,我們只需要轉換polar into cartesian:
X = cos(α) * amplitude;
Y = sin(α) * amplitude;
是的,但這會帶來4次相同類型的代碼。我已經有了一個有效的例子,這不是很好 – J4N