JAVA绘制正多边形
我正在寻找一个算法来绘制正多边形,如三角形,四边形,五边形,六边形等 我想它基本上是在处理这样一个事实,即所有多边形点都位于圆的直线上 计算多边形对象的N个点的算法是什么?JAVA绘制正多边形,java,polygon,Java,Polygon,我正在寻找一个算法来绘制正多边形,如三角形,四边形,五边形,六边形等 我想它基本上是在处理这样一个事实,即所有多边形点都位于圆的直线上 计算多边形对象的N个点的算法是什么? 绘制正多边形后,我需要在第一个正多边形的基础上绘制另一个正多边形,但旋转了K度。正、反、半径、2*PI/边数和循环正、反、半径、2*PI/边数和循环使用正、反: double theta = 2 * Math.PI / sides; for (int i = 0; i < sides; ++i) { doubl
绘制正多边形后,我需要在第一个正多边形的基础上绘制另一个正多边形,但旋转了K度。正、反、半径、2*PI/边数和循环正、反、半径、2*PI/边数和循环使用正、反:
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...
}
double theta=2*Math.PI/边;
对于(int i=0;i
要旋转,只需在角度上添加一个恒定的偏移量,即θ*i+偏移量使用正弦和余弦:
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...
}
double theta=2*Math.PI/边;
对于(int i=0;i
要旋转,只需向角度添加一个恒定的偏移量,即
θ*i+偏移量顶点多边形的顶点位于角度处
(2*Math.PI*K)/N
其中,K
从0变为N-1
,包括在内。垂直坐标可以计算为角度乘以外接圆半径的正弦;水平坐标的计算方法相同,只是需要将半径乘以角度的余弦
要将多边形旋转X
度,请将X
转换为弧度,并将结果添加到公式中的角度,如下所示:
(2*Math.PI*K)/N + Xrad
最后,由于屏幕的原点位于其中一个角,因此只能看到多边形的一部分。要避免这种情况,请将等于外圆中心位置的偏移量添加到您计算的每个坐标。顶点多边形的顶点位于
(2*Math.PI*K)/N
其中,K
从0变为N-1
,包括在内。垂直坐标可以计算为角度乘以外接圆半径的正弦;水平坐标的计算方法相同,只是需要将半径乘以角度的余弦
要将多边形旋转X
度,请将X
转换为弧度,并将结果添加到公式中的角度,如下所示:
(2*Math.PI*K)/N + Xrad
最后,由于屏幕的原点位于其中一个角,因此只能看到多边形的一部分。要避免这种情况,请在计算的每个坐标中添加一个等于外接圆中心位置的偏移量。要绘制的多边形是什么?一个java.awt.Image?一个组件?请把问题弄清楚。如果你只是问计算点的算法,这很容易通过搜索网页找到。您甚至会在StackOverflow上找到至少两个问题,并给出公认的答案。旋转多边形和使用Java2D绘图当然是额外的问题。多边形的绘图目的是什么?一个java.awt.Image?一个组件?请把问题弄清楚。如果你只是问计算点的算法,这很容易通过搜索网页找到。您甚至会在StackOverflow上找到至少两个问题,并给出公认的答案。当然,使用Java2D旋转多边形和绘图是附加问题。