我在尋找一種算法來繪製像三角形,四邊形,五邊形,六邊形等正多邊形JAVA畫正多邊形
我想它`基本處理的事實,所有多邊形點位於上線的圈子。
什麼是計算這些N點爲Polygon對象的算法? 繪製正多邊形後,我需要繪製另一個正多邊形基於第一個但旋轉K度。
我在尋找一種算法來繪製像三角形,四邊形,五邊形,六邊形等正多邊形JAVA畫正多邊形
我想它`基本處理的事實,所有多邊形點位於上線的圈子。
什麼是計算這些N點爲Polygon對象的算法? 繪製正多邊形後,我需要繪製另一個正多邊形基於第一個但旋轉K度。
使用正弦和餘弦:
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
。
正弦,餘弦,半徑,2 * PI /邊的數目和循環
一個N
- 點多邊形的頂點分別位於角度
(2*Math.PI*K)/N
其中K
從0到N-1
,包括端值。垂直座標可以計算爲角度的正弦乘以外接圓的半徑;除了需要將半徑乘以角度的餘弦之外,水平座標的計算方式也是相同的。
爲了通過X
度,即可將您的多邊形轉換X
爲弧度,結果配方中添加的角度,就像這樣:
(2*Math.PI*K)/N + Xrad
最後,由於屏幕的原點是其中一個角落,只有一部分多邊形可見。爲避免這種情況,請將等於外接圓中心位置的偏移量添加到您計算的每個座標。
要繪製的多邊形是什麼?一個java.awt.Image?一個JComponent?請讓問題更清楚。 – Aaron
如果您只是要求計算點的算法,通過搜索網絡很容易找到。你甚至可以在StackOverflow上找到至少兩個接受答案的問題。使用Java2D旋轉多邊形和繪圖當然還有其他問題。 –
我正在使用Java Applet – werd