Jetzt registrieren!
Passwort vergessen?



 
 
 
--------------- --------------- ---------------


Liegt Punkt innerhalb eines Rechtecks



Gegeben sind die vier Eckkoordinaten eines Rechtecks. Wie kann ich herausfinden, ob ein beliebiger Punkt innerhalb oder außerhalb dieses Rechtecks liegt? Gibt's für sowas einen Algorithmus? (entsprechende Links würden mir schon reichen).

Danke,

Ralf
> Artikelbaum anzeigen

Re: Liegt Punkt innerhalb eines Rechtecks


Hallo,

das ist nicht schwer.

// Feststellen, ob ein Punkt in einem Rechteck ist

BOOL PtInRect(CPoint point, CRect rect)
{
if (point.x<rect.left) return FALSE;
if (point.x>rect.right) return FALSE;
if (point.y<rect.bottom) return FALSE;
if (point.y>rect.top) return FALSE;
return TRUE;
}

Dabei muss darauf geachtet werden, dass left<right ist und bottom<top.

Gruß
Moriarty
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Re^2: Liegt Punkt innerhalb eines Rechtecks


Hallo Moriarty,
BOOL PtInRect(CPoint point, CRect rect)
ähm... sorry, habe mein Problem falsch formuliert. Die Lösung von Dir stimmt natürlich, allerdings nur für Rechtecke, deren Seiten parallel zu den Koordinatenachsen verlaufen.
Mein Problem ist: ich gehe von einer Linie in der Ebene aus, also eine Verbindung zwischen zwei beliebigen Punkten, und suche für einen weiteren gegebenen Punkt, ob er einen Mindestabstand von der Linie unterschreitet. Mein Lösungsansatz wäre, mit entsprechendem Mindestabstand links und rechts der Linie ein Rechteck zu definieren und dann zu prüfen, ob der Punkt innerhalb des Rechtecks liegt.
Genaugenommen suche ich den kleinsten Abstand eines Punktes von einer gegebenen Strecke in der Ebene, also das Lot darauf.

Gruss,
Ralf

Re^3: Liegt Punkt innerhalb eines Rechtecks


Genaugenommen suche ich den kleinsten Abstand eines Punktes
von einer gegebenen Strecke in der Ebene, also das Lot darauf.
dann mach ein dreieck draus!

Für Strecke AB und Punkt C Lotpunkt L
gilt

AL/AC=BL/BC
&
AL+BL=AB =>BL=AB-AL

AL/(AB-AL)=AC/BC => nur noch eine gesucht grösse

AL reicht für exakte Bestimmung von L

Re^4: Liegt Punkt innerhalb eines Rechtecks


Für Strecke AB und Punkt C Lotpunkt L gilt

AL/AC=BL/BC
Wäre mir neu, daß das gilt.

Gruß
Martin

Re^5: Liegt Punkt innerhalb eines Rechtecks


mir auch, skizze war falsch,sry
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Re^3: Liegt Punkt innerhalb eines Rechtecks


Hallo Ralf,
Genaugenommen suche ich den kleinsten Abstand eines Punktes
von einer gegebenen Strecke in der Ebene, also das Lot darauf.
dann solltest Du das auch gleich so schreiben und nicht erst mit irgendwelchem Rechteckkram Verwirrung stiften.

Wenn Du eine Gerade hast, die durch die Punkte P1(x1|y1) und P2(x2|y2) verläuft, sowie einen weiteren, irgendwo gelegenen Punkt Q(x0|y0), dann ist der "Abstand" d, den Q von der P1-P2-Gerade hat (= Länge des Lotes von Q auf die Gerade), gegeben durch
m (x0 - x1) - y0 + y1                  y2 - y1  
d = -----------------------    wobei  m := ---------
sqrt(m2 + 1)                       x2 - x1

("sqrt" = "square root" = Quadratwurzelfunktion)

Siehe beliebige Formelsammlung (ab Abiturniveau), Kapitel "Analytische Geometrie in der Ebene", Abschnitt "Geraden".

Mit freundlichem Gruß
Martin

Abstand Punkt - Gerade


Hallo,

Der Abstand d eines Punktes P von einer Geraden durch A nach B berechnet sich:
V_x = B_x - A_x
V_y = B_y - A_y
d = abs( (P_x - A_x)*V_y - (P_y - A_y)*V_x ) / sqrt(V_x*V_x+V_y*V_y)

Gruß
Moriarty

Re: Liegt Punkt innerhalb eines Rechtecks


Bin ja kein Mathe-Profi, aber ich glaube mich erinnern zu können, dass die Bestimmung, ob ein Punkt innerhalb eines Vielecks (nicht notwendigerweise regelmässig) erfolgen kann, indem man vom Punkt aus einen Strahl in eine beliebige Richtung legt und dann prüft, wie viele Seiten der Strahl schneidet. Ist die Anzahl ungerade liegt der Punkt innerhalb, ist sie gerade (oder Null), dann ausserhalb.

Für spezielle Vielecke lässt sich das dann eventuell vereinfachen (wenn das Vieleck z.B. regelmässig ist, dann muss kann die Anzahl der Schnittpunkt nur noch 0, 1, oder 2 sein).

Gruss
Martin
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Du kannst auf diesen Artikel nicht antworten.

Dieser Artikelbaum ist im Archiv des Experten-Forums von wer-weiss-was zum Thema "Physik" archiviert. Es handelt sich um keine aktuelle Diskussion, daher kann auf die Artikel nicht mehr geantwortet werden.

Seite bei ... merken:
del.icio.us digg it facebook tausendreporter yigg it twitter alltagz google Mister Wong oneview Webnews yahoo linkarena coComment Lieblnk als Bookmark einfügen
Stelle deine Frage: