2012-12-16 196 views
-2

我在尋找一種算法來繪製像三角形,四邊形,五邊形,六邊形等正多邊形JAVA畫正多邊形

我想它`基本處理的事實,所有多邊形點位於上線的圈子。

什麼是計算這些N點爲Polygon對象的算法? 繪製正多邊形後,我需要繪製另一個正多邊形基於第一個但旋轉K度。

+0

要繪製的多邊形是什麼?一個java.awt.Image?一個JComponent?請讓問題更清楚。 – Aaron

+0

如果您只是要求計算點的算法,通過搜索網絡很容易找到。你甚至可以在StackOverflow上找到至少兩個接受答案的問題。使用Java2D旋轉多邊形和繪圖當然還有其他問題。 –

+0

我正在使用Java Applet – werd

回答

1

使用正弦和餘弦:

double theta = 2 * Math.PI/sides; 
for (int i = 0; i < sides; ++i) { 
    double x = Math.cos(theta * i); 
    double y = Math.sin(theta * i); 
    // etc... 
} 

要旋轉只需添加一個恆定的偏移,以該角度,即theta * i + offset

0

正弦,餘弦,半徑,2 * PI /邊的數目和循環

1

一個N - 點多邊形的頂點分別位於角度

(2*Math.PI*K)/N 

其中K從0到N-1,包括端值。垂直座標可以計算爲角度的正弦乘以外接圓的半徑;除了需要將半徑乘以角度的餘弦之外,水平座標的計算方式也是相同的。

爲了通過X度,即可將您的多邊形轉換X爲弧度,結果配方中添加的角度,就像這樣:

(2*Math.PI*K)/N + Xrad 

最後,由於屏幕的原點是其中一個角落,只有一部分多邊形可見。爲避免這種情況,請將等於外接圓中心位置的偏移量添加到您計算的每個座標。