|
|
abstände punkte zu geraden/ebenen |
|
roddi |

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 14.05.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.12.2011, 15:20
Titel: abstände punkte zu geraden/ebenen
|
 |
|
 |
|
hi zusammen,
ich weiß, dass das thema schon öfters hier angesprochen wurde, aber bisher habe ich noch keinen hinweis auf mein problem entdecken können.
also wie ich den abstand prinzipiell ausrechne und in matlab implementiere ist mir klar und das funktioniert auch soweit ganz gut.
ich würd aber gleichzeitig auch gerne wissen, ob der abstand wirklich zu der "richtigen" gerade gehört und nicht die gerade künstlich verlängert wurde um orthogonalität zu erhalten.
ich bin mir gerade nicht sicher, ob man das verstehen kann was ich meine
also das würde mich interessieren:(1)
__________+
+----------------------+
und das wiederum interessiert mich nicht: (2)
_______________________+
+----------------------+
also ich hätte gerne nur abstandswerte wie in situation (1). weiß jemand da eine effiziente methode?
im moment rechne den schnittpunkt aus und schau dann ob der auf meiner geraden liegt. dabei muss ich aber den umweg über eine symbolische rechnung gehen und das würde ich gerne vermeiden (ist bestimmt nicht der beste weg, aber mir fällt im moment nix anderes ein).
bin für alles dankbar!
gruß
tim
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 14.12.2011, 18:12
Titel: Re: abstände punkte zu geraden/ebenen
|
 |
Hallo roddi,
Wenn Du Deinen Code posten würdest, könnte ich gleich mit den von Dir gewählten Variablen-Namen antworten.
Geometrisch läßt sich das Problem schnell lösen: Wenn Du das Dreieck aus den zwei Punkten der Strecke und dem weiteren Punkt betrachtest, ist einer der Winkel an der Strecke größer als 90 Grad.
Noch etwas Theorie:
Wie immer bei Code zu 3D-Berechnungen, den man irgendwoher kopiert: Ausgiebig testen! Auch mit Punkten S, die wegen Rundungsfehlern nicht genau auf der Linie liegen. Oder mit Q = 1000000 * rand(1, 3). Und dann nochmal testen. Bugs in 3D-Berechnungen sind hinterrücksig und teufeltückisch.
Gruß, Jan
|
|
|
roddi |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 14.05.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.12.2011, 08:37
Titel:
|
 |
Super, schon mal vielen Dank! Das hilft mir schon sehr.
So wie es in deinem Code implementiert ist, ist es ja so, dass wenn der Schnittpunkt zwischen den beiden Geradenpunkten liegt, die jeweiligen Vektoren zum Schnittpunkt "gegenläufig" sind und daher der cos -1 wird. Wenn der Punkt außerhalb liegt, sind die Vektoren parallel und der cos wird 1. Nur damit ich das auch wirklich verinnerlicht hab?!
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 16.12.2011, 10:54
Titel:
|
 |
Hallo roddi,
Genau. So sollte es sein.
Ob es auch wirklich so funktioniert, musst Du unbedingt an ein paar Beispielen Testen: mit Punkten auf beiden Seiten der Strecke, bei waagrechter, senkrechter und schräger Strecke, wenn die Länge der Strecke Null ist, wenn der Schnittpunkt auf einem Randpunkt liegt, und natürlich noch in allen Fällen, die ich vergessen habe.
Solche geometrischen Aufgaben sind fehleranfällig.
Gruß, Jan
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum 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. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|