0

java+awt(Graphics2D API)を使って円グラフを描きたいです。

私の値はすべて配列に格納されているため、理論的には、度数に変換するには 360 を掛ける必要があります。

そして、x、y座標、開始角度、および範囲角度でオブジェクトを作成しますが、チャートを描画するとこれが得られます..

円グラフ

そして、これは私のコードです:

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 は、10 進数で表されたパーセンテージ (例: 最初の値で 0.25) であり、360 を掛けて円弧の終了度を取得します。

last は最後の値の最後の次数であるため、理論上、次の値は最後の値の次数から開始する必要があります。

デバッグすると、1 番目と 2 番目の値 (実際には 3 つの値しかありません) ではすべて問題ありませんが、3 番目の値 (青色) では何かが間違っています。

私は何か間違ったことをしていますか?

4

0 に答える 0