Liegt Punkt innerhalb eines Rechtecks
(Autor: R a l f Ζ w a n z i g e r, Frage gestellt am Mi, 23. Feb 2005)
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
Danke,
Ralf
Artikelbaum anzeigen
Re: Liegt Punkt innerhalb eines Rechtecks
(Autor: M o r і a r t y, Antwort nach 8 Min)
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
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
(Autor: R а l f Ζ w а n z і g е r, Antwort nach 35 Min)
Hallo Moriarty,
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
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
(Autor: М a t һ і a s К ö l b l, Antwort nach 49 Min)
Genaugenommen suche ich den kleinsten Abstand eines Punktes
von einer gegebenen Strecke in der Ebene, also das Lot darauf.
dann mach ein dreieck draus!von einer gegebenen Strecke in der Ebene, also das Lot darauf.
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
(Autor: М a r t i n, Antwort nach 2 h, 28 Min)
Für Strecke AB und Punkt C Lotpunkt L gilt
AL/AC=BL/BC
Wäre mir neu, daß das gilt.AL/AC=BL/BC
Gruß
Martin
Re^5: Liegt Punkt innerhalb eines Rechtecks
(Autor: Μ a t һ і a s Κ ö l b l, Antwort nach 3 h, 25 Min)
mir auch, skizze war falsch,sry
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Re^3: Liegt Punkt innerhalb eines Rechtecks
(Autor: Μ а r t і n, Antwort nach 2 h, 26 Min)
Hallo Ralf,
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
("sqrt" = "square root" = Quadratwurzelfunktion)
Siehe beliebige Formelsammlung (ab Abiturniveau), Kapitel "Analytische Geometrie in der Ebene", Abschnitt "Geraden".
Mit freundlichem Gruß
Martin
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.von einer gegebenen Strecke in der Ebene, also das Lot darauf.
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
(Autor: М ο r і а r t ү, Antwort nach 5 h, 56 Min)
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
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
(Autor: Т һ е B e а s t, Antwort nach 4 h, 28 Min)
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
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.
Folgende Artikel könnten Dich auch interessieren:
Ist ein Rechteck mit Seitenlänge 0 ein Rechteck?Preloadbalken?
HILFE!!WICHTIG!!
Textaufgaben-Problem
ma-hausaufgaben bekommn ;( -> f(x)= 4- (4/x²)
Grafik sieht online anders aus als offline
Was'n das für'n Eck?
Quadratische Gleichungen
serviette falten
Rechenbeispiel
Ankerpunkte bearbeiten
Visio 2002, Größe ein. Objektes per Zahleneingabe
vorheriger Artikelbaum
(differential und integralrechnung)
(Asymptote)
nächster Artikelbaum















