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 番目の値 (青色) では何かが間違っています。
私は何か間違ったことをしていますか?