Kürzeste mögliche Distanz von einem Punkt zu einem Rechteck?
Also ich meine die kürzeste Distanz die der Punkt hinterlegen muss um das Rechteck zu berühren.
Gegeben ist nur:
- Punkt-Koordinaten
- Mittelpunkt des Rechtecks
- Länge und Höhe des Rechtecks
Bitte mit Beispiel im 2D-Raum.
MfG
Suchst du eine Formel?
ja
2 Antworten
Hallo Containeratur,
du kannst erstmal mithilfe des Mittelpunkts, der Länge und der Höhe des Dreiecks die Eckpunkte berechnen. Für Mittelpunkt (x, y), Länge l und Höhe h sind die Eckpunkte:
(x - 1/2l, y - 1/2h) -> linke untere Ecke
(x + 1/2l, y - 1/2h) -> rechte untere Ecke
(x - 1/2l, y + 1/2h) -> linke obere Ecke
(x + 1/2l, y + 1/2h) -> rechte obere Ecke
Jetzt musst du schauen, ob der Punkt so liegt, dass du ein Lot auf eine der Seiten fällen kannst, d. h., ob er sich in dem grün gefärbten Bereich im Bild befindet.
Das ist der Fall, wenn entweder die x-Koordinate des Punktes zwischen den x-Koordinaten der Eckpunkte des Rechtecks (x - 1/2l und x +1/2l) oder die y-Koordinate des Punktes zwischen den y-Koordinaten der Eckpunkte des Rechtecks (y - 1/2h und y +1/2h) liegt.
Wenn dem so ist, rechnest du die Länge des besagten Lotes aus (je nachdem entweder der x-Abstand oder y-Abstand).
Andernfalls, wenn der Punkt in der gelb markierten Fläche liegt, nimmst du die Koordinate des am nächsten liegenden Eckpunkts, berechnest jeweils x- und y-Abstand zum Punkt und darüber dann die Distanz. Da wir hier, wie eingezeichnet, ein rechtwinkliges Dreieck haben, gilt:
Distanz = sqrt((x-Abstand)² + (y-Abstand)²)
Wenn du ein Beispiel hast, bei dem du noch Hilfe brauchst, weil dir meine Erklärung nicht ausreicht, sag Bescheid, aber ich habe keine Lust mir noch eins auszudenken xD
LG Moon^^

Naja, in dem Video, das JanaL161 in seine Antwort eingebunden hat, werden die Optionen in einer Gleichung zusammengefasst. Das könntest du dir mal anschauen. Allerdings wird dort mit der max()-Funktion gearbeitet, ich weiß nicht, ob das für dich als "normale Formel" gilt.
Das lässt sich mit einer SDF evaluieren. Iñigo Quilez ist in diesem Gebiet bekannt. Hier die Herleitung der SDF eines Rechtecks:
Hier auch viele weitere 2D SDF: https://iquilezles.org/articles/distfunctions2d/
Gibt es auch eine Formel, die hier immer gilt, egal in welchem Bereich sich der Punkt befindet?