Jere
Grünschnabel
Hallo Leute,
ich habe gestern Abend die ganze Zeit an einem Problem gesessen, das ich einfach nicht verstanden habe.
Ich habe Rectangle2D.Float.outcode() benutzt, um herauszufinden, wo sich ein bestimmter Punkt befindet. Solange sich der Punkt an keiner Ecke befand hat das auch super funktioniert. Als der Punkt sich aber an einer Ecke befand und somit 2 Werte herausgegeben werden müssten (einmal Rectangle2D.OUT_LEFT oder Rectangle2D.OUT_RIGHT und dann Rectangle2D.OUT_TOP oder Rectangle2D.OUT_BOTTOM), hat das Ganze irgendwie nicht mehr wirklich funktionieren wollen.
Ich habe den Code einmal etwas vereinfacht. So sieht er aus:
Wenn sich nun der Punkt (x,y) bei einer Ecke befindet, gibt es keine Ausgabe.
Ich habe zwar das Ganze mit einer eigenen Methode gelöst, die ein Array ausgibt, weil es mir zu blöd wurde, aber ich wüsste doch ganz gerne, ob das nicht irgendwie einfacher geht.
Ich habe gesehen, dass die Methode Rectangle2D.Float.outcode() ein "logical OR" ausgibt, weiß aber nicht recht, wie man damit nun umgehen soll und habe auch nicht wirklich etwas dazu gefunden. Ich nehme an, da liegt das Problem. Kann mir bitte jemand helfen?
Schon einmal vielen Dank!
Gruß,
Jere
ich habe gestern Abend die ganze Zeit an einem Problem gesessen, das ich einfach nicht verstanden habe.
Ich habe Rectangle2D.Float.outcode() benutzt, um herauszufinden, wo sich ein bestimmter Punkt befindet. Solange sich der Punkt an keiner Ecke befand hat das auch super funktioniert. Als der Punkt sich aber an einer Ecke befand und somit 2 Werte herausgegeben werden müssten (einmal Rectangle2D.OUT_LEFT oder Rectangle2D.OUT_RIGHT und dann Rectangle2D.OUT_TOP oder Rectangle2D.OUT_BOTTOM), hat das Ganze irgendwie nicht mehr wirklich funktionieren wollen.
Ich habe den Code einmal etwas vereinfacht. So sieht er aus:
Java:
int pos = r.outcode(x,y);
if (pos == Rectangle2D.OUT_BOTTOM)
System.out.println("unten");
if (pos == Rectangle2D.OUT_TOP)
System.out.println("oben");
if (pos == Rectangle2D.OUT_RIGHT)
System.out.println("rechts");
if (pos == Rectangle2D.OUT_LEFT)
System.out.println("links");
Wenn sich nun der Punkt (x,y) bei einer Ecke befindet, gibt es keine Ausgabe.
Ich habe zwar das Ganze mit einer eigenen Methode gelöst, die ein Array ausgibt, weil es mir zu blöd wurde, aber ich wüsste doch ganz gerne, ob das nicht irgendwie einfacher geht.
Ich habe gesehen, dass die Methode Rectangle2D.Float.outcode() ein "logical OR" ausgibt, weiß aber nicht recht, wie man damit nun umgehen soll und habe auch nicht wirklich etwas dazu gefunden. Ich nehme an, da liegt das Problem. Kann mir bitte jemand helfen?
Schon einmal vielen Dank!
Gruß,
Jere