使用AWT绘制饼图

时间:2012-04-18 20:30:31

标签: java awt graphics2d

我想使用java + awt(Graphics2D API)绘制饼图。

我的所有值都存储在一个数组中,因此理论上我必须乘以360才能转换为度数。

使用x,y coordenates,开始角度和范围角度创建我的对象,但是当我绘制图表时我得到了这个...

Pie Chart

这是我的代码:

for(int i=0;i<pie.getNumDatos();i++){
            g2.setPaint(colores[i%colores.length]);
            double endDegree=valores[i].valor*360;
            Arc2D arcos=new Arc2D.Double(x, y,300,300,last,endDegree, Arc2D.PIE);
            last=endDegree;
            g2.fill(arcos);
            g2.draw(arcos);

        }  

我会试着解释一下。

pie.getNumDatos()是我的数据数组中的“片段”数(等于array.size())。

endDegree是以十进制表示的百分比(例如:第一个值为0.25),再乘以360得到弧的结束程度。

last是最后一个值的最后一个度,所以理论上下一个值必须从最后一个值开始。

当我调试一切正常时,第一个和第二个值(实际上只有3个值)但是第三个值(蓝色)有些问题。

我做错了吗?

0 个答案:

没有答案