2Danke
ERLEDIGT
JA
JA
ANTWORTEN
11
11
ZUGRIFFE
424
424
EMPFEHLEN
-
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:
Code java:1 2 3 4 5 6 7 8 9 10
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
-
02.09.11 14:18 #2
Hi und Willkommen bei Tutorials,
bevor wir dir weiterhelfen können, brauchen wir erstmal eine genaue Fragestellung. Was genau willst du von uns wissen? Willst du wissen, ob ein Punk innerhalb von einem Rectangle-Objekt liegt?
Gruß
FabioBitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
Hi
ich glaub, ich weiß was du meinst.
Schreib einmal:
und auch bei den anderen dreien so.Code java:1 2
if ((pos & Rectangle2D.OUT_BOTTOM) != 0) System.out.println("unten");
Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
Jaaa, tatsächlich, genau das ist es!
Vielen Dank!
Aber wenn ich ehrlich sein soll, verstehe ich diese Syntax nicht so ganz...
-
RIGHT ist 1, LEFT 2, BOTTOM 4 und TOP 8 (oder sowas in der Art, kann auch 16, 32, 64 und 128 sein,solange es sich nur immer verdoppelt).
Bleiben wir beispielsweise bei 1/2/4/8.
Im Binärsystem sind diese Zahlen 0001/0010/0100/1000.
Immer ein Einser an einer anderen Stellen.
Wenn jetzt die Kombination BOTTOM/RIGHT herauskommt, kommt 1010.
Also zwei Einser an den Stellen von RIGHT UND BOTTOM.
1010 ist umgerechnet 10.
Du hast vorher nur geprüft, ob genau 1, 2, 4 oder 8 herauskommt.
Ich prüfe jetzt für alle vier Stellen, ob ein Einser dort steht; jeweils unabhängig von den anderen drei Stellen der Binärzahl.
& nennt sich "Bit-Und", "bit-Or" oder wie auch immer....Geändert von sheel (02.09.11 um 14:39 Uhr)
Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
02.09.11 14:34 #6SE Tutorials.de Gastzugang
@sheel
& , | , ^ -> Bit-Operatoren
&& , || , ! -> logische Operatoren
-
Stimmt natürlich.
Danke für die Korrektur.Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
Aaah ok! Ich muss gestehen, dass ich mich mit binären Zahlen noch nicht so gut auskenne, aber mit etwas Nachdenken und ein paar Mal Lesen deines Posts habe ich es nun soweit verstanden.

Also vielen Dank nochmal!
-
02.09.11 15:09 #9SE Tutorials.de Gastzugang
@sheel
Immer muss ich dich berichtigen ... oder soll ich in Zukunft wahlos mit Wiki-Links um mich werfen ? xD
-
Möglichkeit 3: Schneller werden als ich
Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
02.09.11 15:26 #11SE Tutorials.de Gastzugang
Hmm ... daran müsste ich arbeiten ... aber mit ner 6'000er Standleitung is da nich viel drin ...
-
02.09.11 15:52 #12
Den Post möglichst früh entdecken und möglichst schnell eine Antwort runtertippen... Das sollte das Problem weitestgehend beheben können (außer der andere kommt auf die gleiche Idee
).
Man sagt, das Schwert eines Samurai sei seine Seele ...
Mit den Beiträgen ist es wie mit Schwertern: Je besser die Rohstoffe sind und je öfter man diese bearbeitet, desto hochwertiger sind sie.
Das Schmieden ist eine Kunst; Das Schreiben auch ;)
Ähnliche Themen
-
Falscher Ausgabewert in C
Von BataL im Forum C/C++Antworten: 3Letzter Beitrag: 14.11.01, 00:36





Zitieren

Login





