Hallo Java-Freunde
Ich habe ein Kreisdiagrammsapplet geschrieben, bei dem ich nicht weiß wie man das Problem mit dem Rundungsrest lösen soll, damit keine Lücken zwischen den Tortenstücken entstehen. Wie macht man das?
Hier ist mein KKB:
Es funktioniert zwar, aber wie man sieht, muß ich am Ende vor der Darstellung in Integer casten. Damit entsteht das Problem. Ich bitte um Euren Rat.
Viele Grüße
Semo
Ich habe ein Kreisdiagrammsapplet geschrieben, bei dem ich nicht weiß wie man das Problem mit dem Rundungsrest lösen soll, damit keine Lücken zwischen den Tortenstücken entstehen. Wie macht man das?
Hier ist mein KKB:
Java:
import java.awt.*;
import java.applet.*;
import java.util.Random;
public class Torte extends Applet {
private static final long serialVersionUID = -3634359988154705317L;
private float[] werte = { 14, 25, 70, 240, 10, 120, 140, 50, 30, 89, 270,
350 };
private static Color[] ColorBars = { Color.red, Color.orange, Color.yellow,
Color.green, Color.cyan, Color.blue, Color.pink, Color.magenta,
Color.lightGray };
Random r = new Random();
int x = 0;
int y = 0;
public void paint(Graphics g) {
float startAngle = 0f;
float arcAngle = 0f;
float summe_wert = 0f;
float arc_mean = 0f;
setSize(200, 200);
for (int i = 0; i < werte.length; i++) {
summe_wert += werte[i];
}
// Groesse eines Winkels im Verhaeltnis zur Summe aller Mengen
arc_mean = 360 / summe_wert;
for (int j = 0; j < werte.length; j++) {
startAngle += arcAngle;
int index = r.nextInt(7);
g.setColor(ColorBars[index]);
arcAngle = arc_mean * werte[j];
g.fillArc(x, y, 200, 200, (int) startAngle, (int) arcAngle);
}
}
}
Es funktioniert zwar, aber wie man sieht, muß ich am Ende vor der Darstellung in Integer casten. Damit entsteht das Problem. Ich bitte um Euren Rat.
Viele Grüße
Semo