50分 求java graphics画雷达图的代码

Python015

50分 求java graphics画雷达图的代码,第1张

有两个图你对比着看结果,

用/* */注释掉的可以和上边的同行数相换,你试一下。

//后面的是注释

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 = 0k <5k++) {

r = k * 50

for (i = 0i <10i++) {

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 = 0i <10i++) {

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 = 0i <10i++) {

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 = 0k <5k++) {// 画刻度线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)

*/

}

}

}

给你一个我从上反编译过来的,是个雷达图,包加载对了你就能看到效果

package demo

import java.awt.Dimension

import javax.swing.JPanel

import org.jfree.chart.ChartPanel

import org.jfree.chart.JFreeChart

import org.jfree.chart.labels.StandardCategoryToolTipGenerator

import org.jfree.chart.plot.SpiderWebPlot

import org.jfree.chart.title.LegendTitle

import org.jfree.chart.title.TextTitle

import org.jfree.data.category.CategoryDataset

import org.jfree.data.category.DefaultCategoryDataset

import org.jfree.ui.*

public class SpiderWebChartDemo1 extends ApplicationFrame

{

public SpiderWebChartDemo1(String s)

{

super(s)

JPanel jpanel = createDemoPanel()

jpanel.setPreferredSize(new Dimension(500, 270))

setContentPane(jpanel)

}

private static CategoryDataset createDataset()

{

String s = "First"

String s1 = "Second"

String s2 = "Third"

String s3 = "Category 1"

String s4 = "Category 2"

String s5 = "Category 3"

String s6 = "Category 4"

String s7 = "Category 5"

DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset()

defaultcategorydataset.addValue(1.0D, s, s3)

defaultcategorydataset.addValue(4D, s, s4)

defaultcategorydataset.addValue(3D, s, s5)

defaultcategorydataset.addValue(5D, s, s6)

defaultcategorydataset.addValue(5D, s, s7)

defaultcategorydataset.addValue(5D, s1, s3)

defaultcategorydataset.addValue(7D, s1, s4)

defaultcategorydataset.addValue(6D, s1, s5)

defaultcategorydataset.addValue(8D, s1, s6)

defaultcategorydataset.addValue(4D, s1, s7)

defaultcategorydataset.addValue(4D, s2, s3)

defaultcategorydataset.addValue(3D, s2, s4)

defaultcategorydataset.addValue(2D, s2, s5)

defaultcategorydataset.addValue(3D, s2, s6)

defaultcategorydataset.addValue(6D, s2, s7)

return defaultcategorydataset

}

private static JFreeChart createChart(CategoryDataset categorydataset)

{

SpiderWebPlot spiderwebplot = new SpiderWebPlot(categorydataset)

spiderwebplot.setStartAngle(54D)

spiderwebplot.setInteriorGap(0.40000000000000002D)

spiderwebplot.setToolTipGenerator(new StandardCategoryToolTipGenerator())

JFreeChart jfreechart = new JFreeChart("Spider Web Chart Demo 1", TextTitle.DEFAULT_FONT, spiderwebplot, false)

LegendTitle legendtitle = new LegendTitle(spiderwebplot)

legendtitle.setPosition(RectangleEdge.BOTTOM)

jfreechart.addSubtitle(legendtitle)

return jfreechart

}

public static JPanel createDemoPanel()

{

JFreeChart jfreechart = createChart(createDataset())

return new ChartPanel(jfreechart)

}

public static void main(String args[])

{

SpiderWebChartDemo1 spiderwebchartdemo1 = new SpiderWebChartDemo1("SpiderWebChartDemo1")

spiderwebchartdemo1.pack()

RefineryUtilities.centerFrameOnScreen(spiderwebchartdemo1)

spiderwebchartdemo1.setVisible(true)

}

}