Guten Abend,
Beim Programmieren ist mir aufgefallen, dass eine Klasse, genannt BruchCanvas, eine Zeile besitzt, welche sich für mich nicht erschliesst. Mit BruchCanvas soll ein Bruch graphisch in einem Kreisdiagramm dargestellt werden.
{
private Bruch bruch;
public BruchCanvas()
{
bruch = null;
}
public void zeige(Bruch b)
{
bruch = b;
repaint(); //Methode Paint muss immmer indirekt aufgerufen werden! Da sonst Probleme mit Betriebssystem
}
/**
* zeichnet ein Oval
* parameter
* 1=x, 1=y (die Werte links oben der Canvas)
* Breite - 2 unserer Cavas, Höhe -2 unserer Canvas
* -2, da ansonsten oben und rechts 2 Pixel abgeschnitten werden
*/
public void paint(Graphics g)
{
g.setColor(Color.red); //Kreis soll Randfarbe Rot bekommen
int width = getWidth()-2;
int height = getHeight()-2;
g.drawOval(1, 1, width, height); //Oval wird einem Rechteck einbeschrieben,
//x und y der Koordinate der oberen linken Ecke und Höhe und Breite des Rechtecks
if (bruch != null)
{
//double dezimalzahl = bruch.dezimalzahl(); //holt sich die Dezimalzahl des Bruchs
g.setColor(Color.green);
double winkel = bruch.dezimalzahl() * 360; //macht daraus eine Winkelzahl, aber noch mit Komma
int w = (int) winkel; //macht daraus eine Integer
g.fillArc(1,1,width,height,90,-w);
}
}
}
Zeile 34 verstehe ich nicht. Würde ein Wert unter 0 mit 360 multipliziert werden, bekäme man eine normale graphische Darstellung. Was aber ist mit Brüchen, wo das Ergebnis über 0 liegt und dieses dann mal 360 genommen werden würde? Das Ergebnis wäre eine viel zu hohe Zahl, als dass sie in dem Kreisdiagramm dargestellt werden könnte, oder?
Danke schon mal für die Antworten.