ProfilProfil
 Registrieren
 Login
Bild der WocheBild der Woche

(von Backslider)
Kommentare (0)
****

Weitere
User onlineBenutzer online
Gäste online: 9
Mitglieder online: Keine
Registrierte Mitglieder: 2116
Neustes Mitglied: onkel_keks

Komische Ergebnisse bei RectangleF.Contains(PointF)

Neue Antwort erstellen
 

 

Autor Nachricht
 
 
VuencBirr
Member


Anmeldedatum: 28.03.2012
Beiträge: 41

Antworten mit Zitat
BeitragVerfasst am: 12.04.2012, 21:40    Titel: Komische Ergebnisse bei RectangleF.Contains(PointF)

Bei mir kam es bei einer Kollisionsprüfung zu Fehlern, dann hab ich im Debugger mal nachgeprüft und bin zu komischen Ergebnissen gekommen:

using System.Drawing;

new RectangleF(-4, -4, 1204, 1004).Contains(new PointF(1200, 0)) => Ergebnis: false Exclamation
new RectangleF(-4, -4, 1204, 1004).Contains(new PointF(1200, 1)) => Ergebnis: false Exclamation
new RectangleF(-4, -4, 1205, 1004).Contains(new PointF(1200, 0)) => Ergebnis: true Question
new RectangleF(-4, -4, 1205, 1004).Contains(new PointF(1199, 0)) => Ergebnis: true Question Question Question

So wie es für mich aussieht, liegt der PointF eigentlich immer innerhalb des RectangleFs, oder hab ich da irgendwas übersehen? Kann sich hier irgendwer diese Ergebnisse erklären? Oder ist da ein Fehler in der RectangleF-Klasse (was ich eig. nicht glaube)?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden


Fortrackz
Member


Anmeldedatum: 01.07.2011
Beiträge: 186
Wohnort: Nürtingen

Antworten mit Zitat
BeitragVerfasst am: 12.04.2012, 21:48    Titel:

Ich denke mal, dass wenn der Punkt genau auf der Kante liegt, das nicht mehr zählt.

new RectangleF(-4, -4, 1204, 1004).Contains(new PointF(1200, 0));

dann ginge das Rectangle ja bis X: 1200 und der Punkt liegt bei X:1200

Versuchs mal mit 1199.. Ich weiß es nicht genau, spekuliere nur
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden ICQ-Nummer


JeReT
Member


Anmeldedatum: 19.07.2007
Beiträge: 3248
Wohnort: µnchen

Antworten mit Zitat
BeitragVerfasst am: 12.04.2012, 21:49    Titel:

jup. Auf dem Rand liegend bedeutet nicht darin liegend. so einfach ist das Wink
_________________
Idea Shapes
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen Yahoo Messenger MSN Messenger ICQ-Nummer


VuencBirr
Member


Anmeldedatum: 28.03.2012
Beiträge: 41

Antworten mit Zitat
BeitragVerfasst am: 12.04.2012, 22:04    Titel:

Hä das ist doch grade das komische es geht ja nicht bis 1200 sondern 1204! Sonst wär die Lösung ja klar
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden


cheater
Member


Anmeldedatum: 05.06.2011
Beiträge: 612
Wohnort: Nähe Graz

Antworten mit Zitat
BeitragVerfasst am: 12.04.2012, 22:18    Titel:

ja, du hast was übersehen: Und zwar die bedeutung der Parameter des Konstruktors des RectanlgeF.
Diese sin: X Position, Y Position, Breite und höhe
Wenn dein Rectangle bei -4 beginnt und 1204 breit ist, hört es bei 1200 auf. Deshalb wird der Punkt 1200 nicht mehr in dem Rechteck befinden.
_________________
Ich übernehme keinerlei Haftung für falsche, unnütze oder störende Beiträge...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden


Kevin
Member


Anmeldedatum: 24.10.2008
Beiträge: 882
Wohnort: Karlsruhe

Antworten mit Zitat
BeitragVerfasst am: 12.04.2012, 22:21    Titel:

Schau dir mal die Dokumentation zum Konstruktor der RectangleF Klasse an, dann wirst du sehen, dass die ersten zwei Parameter die Koordinaten der oberen linken Ecke angeben und die letzten beiden die Breite bzw. die Höhe, nicht aber den unteren rechten Punkt, wie du vllt vermutest Wink

Die Linke Obere Ecke des Rechtecks ist also in deinem Fall bei (-4/-4) und die Breite und Höhe ist 1204, deshalb ist die untere Rechte Ecke bei (1200/1200). Wie meine Vorredner schon erwähnt haben, wird ein Punkt auf der Ecke wohl als "Nicht Contained" angesehen. Ist also alles ganz logisch Very Happy

//Edit: Verdammt zu langsam Smile
_________________
Mein Youtube Kanal
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden


VuencBirr
Member


Anmeldedatum: 28.03.2012
Beiträge: 41

Antworten mit Zitat
BeitragVerfasst am: 13.04.2012, 14:02    Titel:

Ach verdammt bin ich dumm Very Happy Very Happy Very Happy
Danke
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden


Beiträge der letzten Zeit anzeigen:   
 
Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de