java雷达图怎么改成5边形?代码如下,10边形的,小白看不懂,不会修改成5边形的。。。跪求!!

import java.applet.Applet;
import java.awt.*;
public class katai3 extends Applet {
int pa[] = new int[10];// 定义3个数组,大小为10
int a[] = new int[10];
int b[] = new int[10];
public void init() { // 初始化数组pa[]
setBackground(new Color(255, 255, 255));// 设置背景颜色白色
pa[0] = 140;
pa[1] = 100;
pa[2] = 90;
pa[3] = 120;
pa[4] = 50;
pa[5] = 60;// 给数组pa[]附初值
pa[6] = 42;
pa[7] = 150;
pa[8] = 42;
pa[9] = 150;
}
public void paint(Graphics g) {
int r, i, k;// 定义3个变量r, i, k
for (k = 0; k < 5; k++) {
r = k * 50;
for (i = 0; i < 10; i++) {
double rad = Math.PI / 180;// 定义角度1度

int x1 = (int) (300 + r * Math.cos(36 * (i) * rad));// 定义网格
int y1 = (int) (300 - r * Math.sin(36 * (i) * rad));
int x2 = (int) (300 + r * Math.cos(36 * (i + 1) * rad));// 定义网格
int y2 = (int) (300 - r * Math.sin(36 * (i + 1) * rad));
int x3 = (int) (300 + (-215) * Math.sin(-36 * (i - 0.5) * rad));// 定义标记数字位置
int y3 = (int) (300 + (-215) * Math.cos(-36 * (i - 0.5) * rad));

/*
int x1=(int)(300+r*Math.cos(36*(i-0.5)*rad));//定义网格
int y1=(int)(300-r*Math.sin(36*(i-0.5)*rad));
int x2=(int)(300+r*Math.cos(36*(i+0.5)*rad));//定义网格
int y2=(int)(300-r*Math.sin(36*(i+0.5)*rad));
int x3=(int)(300+(-215)*Math.sin(-36*i*rad));//定义标记数字位置
int y3=(int)(300+(-215)*Math.cos(-36*i*rad));
*/
g.drawString(i + 1 + "", x3, y3);// 画数字
g.drawLine(x1, y1, x2, y2);// 画雷达
}
}
for (i = 0; i < 10; i++) {
double rad = Math.PI / 180;// 定义角度1度
a[i] = (int) (300 + pa[i] * Math.sin(36 * (i-0.5) * rad));// 定义图形区域
b[i] = (int) (300 - pa[i] * Math.cos(36 * (i-0.5) * rad));
/*a[i]=(int)(300+pa[i]*Math.sin(36*i*rad));//定义图形区域
b[i]=(int)(300-pa[i]*Math.cos(36*i*rad));
*/

}
g.setColor(Color.red);// 调g的setColor方法定义颜色-红色
g.fillPolygon(a, b, 10);// 画图形填充区域
g.setColor(Color.black);// 调g的setColor方法定义颜色-黑色
g.drawPolygon(a, b, 10);// 画轮廓线
for (i = 0; i < 10; i++) {
int x4 = (int) (300 + 200 * Math.cos(36 * i * Math.PI / 180));// 定义米字骨
int y4 = (int) (300 - 200 * Math.sin(36 * i * Math.PI / 180));

/*int x4=(int)(300+200*Math.cos(36*(i-0.5)*Math.PI/180));//定义米字骨
int y4=(int)(300-200*Math.sin(36*(i-0.5)*Math.PI/180));
*/
g.setColor(Color.black);// 调g的setColor方法定义颜色-黑色
g.drawLine(300, 300, x4, y4);// 画轮廓线
}
for (k = 0; k < 5; k++) {// 画刻度线0, 50, 100, 150, 200
double rad = Math.PI / 180;// 定义角度1度
g.drawString(k * 50 + "",(int) (300 - 60 * k * Math.sin(15 * rad)), 300 - k * 50);
/* g.drawString(k*50+"",300,300-k*50);
*/
}
}
}

应该是角度的问题,圆周的话就是360,分成五份每一角是72,

温馨提示:答案为网友推荐,仅供参考
相似回答