JAVA绘制正多边形

时间:2012-12-16 23:04:44

标签: java polygon

我正在寻找一种算法来绘制正方形多边形,如三角形,四边形,五边形,六边形等。

我想它基本上处理的是所有多边形点都位于圆的线上。

为Polygon对象计算N个点的算法是什么? 绘制正多边形后,我需要根据第一个多边形绘制另一个正多边形,但旋转K度。

3 个答案:

答案 0 :(得分:3)

使用sin和cos:

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

答案 1 :(得分:1)

N - 顶点多边形的顶点位于角度

(2*Math.PI*K)/N

其中K从0到N-1,包括{}。垂直坐标可以计算为角度的正弦乘以外接圆的半径;水平坐标以相同的方式计算,除非您需要将半径乘以角度的余弦。

要将多边形转换X度,请将X转换为弧度,然后将结果添加到公式中的角度,如下所示:

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

最后,由于屏幕的原点位于其中一个角落,因此只有部分多边形可见。为避免这种情况,请将一个等于外接圆中心位置的偏移量添加到您计算的每个坐标中。

答案 2 :(得分:0)

sin,cos,radius,2 * PI /边数和循环