Fehler in for-schleife
Fredo
- java
Hey Leute,
ich hänge fest...
ich habe eine for-schleife in paint() programmiert, die eigentlich dafür sorgen soll, dass je ein Kreis pro Durchlauf so gezeichnet wird, dass zum Schluss eine Halbe Ellipse zu sehen ist. Leider wird irgendwie gar nichts gezeichnet. Warum? Vielleicht kann mir einer von euch helfen.
Hier der entsprechende Quelltext:
for ( int i = StartLbX; i <= StartLbX + breite && i*i <= (breite/2) * (breite/2); i+=5){
// X-Koordinate wird durch das steigende i beschrieben
xKo_HK = i;
// Y-Koordinate wird über die Ellipsenfunktion (breite, höhe, X-Koordinate) berechnet
double yKo_HK_ = (1/(höhe/2)) * (breite/2) * (Math.sqrt((breite/2)*(breite/2)-(i*i))); //Ellipsenfunktion
int yKo_HK = (int) yKo_HK_;
// Zeichnen der Momentanposition des HK's
g.drawOval(xKo_HK ,yKo_HK + 3 ,6,6);
}
P.S: Die Fehler ist nicht bei den Variablen, die hab ich hundertmal überprüft!
Danke schon mal
MfG Fredo
Hallo Fredo,
versuch es mal so:
double yKo_HK_ = (1.0/(höhe/2.0)) * (breite/2) * (Math.sqrt((breite/2.0)*(breite/2.0)-(i*i)));
Also alle Ziffern als Dezimalzahl angeben, dann sollte auch was rauskommen.
Mit freundlichem Gruß
Micha
Also alle Ziffern als Dezimalzahl angeben, dann sollte auch was rauskommen.
Danke funktioniert..
MfG Fredo
Hallo,
Also alle Ziffern als Dezimalzahl angeben, dann sollte auch was rauskommen.
Danke funktioniert..
Weißt du auch wieso?
Gruß
Slyh
Hallo Slyh,
Weißt du auch wieso?
Auch wenn Du mich nicht angesprochen hast, hätte ich in meiner Antwort die Frage wohl mit beantworten können (oder sollen?).
double d = 1/Math.PI;
//entspricht
d = (int)1.0/Math.PI;
durch die Angabe als Fließkommazahl
double d = 1.0/Math.PI;
//entspricht
d = (double)1/Math.PI;
Das Problem tritt auch nur in dieser Richtung int/double auf. Im vorliegenden Fall war gleich der erste Faktor betroffen:
double yKo_HK_ = (1/(höhe/2)) * ...
der damit zu Null wurde und somit das Produkt zu Null werden ließ.
Btw. Seit wann dürfen Variablen auch Umlaute enthalten oder gab es hier keine Regelung?
Mit freundlichem Gruß
Micha