Java 如何修复正多边形
我正在用java图形绘制多面多边形。我的算法只有在涉及少量边时才能很好地工作。例如,当多边形有50多条边时,如何修复它Java 如何修复正多边形,java,graphics,polygon,Java,Graphics,Polygon,我正在用java图形绘制多面多边形。我的算法只有在涉及少量边时才能很好地工作。例如,当多边形有50多条边时,如何修复它 // PolygonsGUI. The value represents the number of sides of the polygon - Xiao 2019 int x0 = dim.width / 2; int y0 = dim.height / 2; int r = Math.min(x0, y0) - 2 * gap;
// PolygonsGUI. The value represents the number of sides of the polygon - Xiao 2019
int x0 = dim.width / 2;
int y0 = dim.height / 2;
int r = Math.min(x0, y0) - 2 * gap;
int[] xx = new int[value];
int[] yy = new int[value];
for (int i = 0; i < value; i++) {
Double a = i * (Math.toRadians(360 / (double)value));
xx[i] = (int) (x0 + (r * Math.sin(a)));
yy[i] = (int) (y0 + (r * Math.cos(a)));
}
g.drawPolygon(xx, yy, value);
//PolygonsGUI。该值表示多边形的边数-边数
int x0=尺寸宽度/2;
int y0=尺寸高度/2;
int r=数学最小值(x0,y0)-2*间隙;
int[]xx=新的int[值];
int[]yy=新的int[值];
for(int i=0;i
您的程序运行正常。我画了从中心到多边形上每个点的线来显示半径。也许问题出在代码的其他地方
导入java.awt.Dimension;
导入java.awt.Graphics;
导入javax.swing.JFrame;
导入javax.swing.JPanel;
公共类PolygonDemo扩展了JPanel{
JFrame=新JFrame();
整数宽度=500;
内部高度=500;
int gap=20;
整数值=50;
int[]xx=新的int[值];
int[]yy=新的int[值];
int x0=宽度/2;
int y0=高度/2;
公共PolygonDemo(){
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
框架。添加(此);
setPreferredSize(新尺寸(宽度、高度));
frame.pack();
frame.setLocationRelativeTo(空);
frame.setVisible(true);
}
公共静态void main(字符串[]args){
调用器(()->new PolygonDemo().start());
}
公开作废开始(){
int r=数学最小值(x0,y0)-2*间隙;
for(int i=0;i
我已经修好了。这是因为类型。在多少个侧面它“停止工作”?“停止工作”是什么意思?不是JAVA编码器,但你确定sin,cos
需要角度而不是弧度吗?