Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.net  
   

Die mobilen Seiten von c++.net:
https://m.c-plusplus.net

  
C++ Forum :: Mathematik und Physik ::  Abstand Punkt - Ebene in Normalenform     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
cl90
Mitglied

Benutzerprofil
Anmeldungsdatum: 15.01.2012
Beiträge: 360
Beitrag cl90 Mitglied 14:43:36 11.01.2017   Titel:   Abstand Punkt - Ebene in Normalenform            Zitieren

Moin :)

Es gibt im Netz ziemlich viele Lösung für die Distanz von einem Punkt zu einer Ebene zu finden, allerdings setzen die immer bestimmte Ebenenformen v******.
Ich möchte aus Berechnungszeitgründen aber keine Umformung in meinem Programm vornehmen.

Kann man die Distanz von einem Punkt zu einer Ebene welche in Stützpunkt + Normalenvektor gegeben ist berechnen?
Bzw. so einfach wie irgend möglich, denn eine Umformung in eine andere Form und das Problem dort zu lösen ist keine Lösung die ich akzeptieren möchte :)

Gruß
Chris
fsdfsdf
Unregistrierter




Beitrag fsdfsdf Unregistrierter 16:03:28 11.01.2017   Titel:              Zitieren

meist ist die Ebene in Hessescher Normalform gegeben, also n*p+d=0.
Doch das ist ja gerade das was du braucht, wenn du von Normalvektor und Stützstelle sprichst, denn dann ist deine Ebene ja genauso definiert mit d=-n*p mit p=Stückstelle und n=Normale.
Schließlich kennst du n und d, somit kannst du jeden beliebigen Punkt p einsetzen und bekommst die Distanz dist=n*p+d
SeppJ
Global Moderator

Benutzerprofil
Anmeldungsdatum: 10.06.2008
Beiträge: 26953
Beitrag SeppJ Global Moderator 16:17:35 11.01.2017   Titel:              Zitieren

Ich hoffe, ich habe richtig gerechnet; ich habe es nicht gründlich geprüft:
(punktvektor + d * normalenvektor - stützpunkt).normalenvektor = 0
wobei . das Skalarprodukt ist. Damit folgt
d * normalenvektor² + punktvektor.normalenvektor - stützvektor.normalenvektor = 0
Ich nehme mal an, dass der Normalenvektor normiert ist, dann ist
d = stützvektor.normalenvektor - punktvektor.normalenvektor
Damit ist der Betrag von d der Abstand. Aus dem Vorzeichen von d könntest du noch schließen, auf welcher Seite der Punkt liegt.

Stützvektor.normalenvektor kannst du allgemein vorausberechnen, sofern es immer die gleiche Ebene ist. Bleiben drei Multiplikationen und ein paar Additionen, ich denke, das sollte recht optimal sein.

_________________
Korrekte Rechtschreibung und Grammatik sind das sprachliche Äquivalent zu einer Dusche und gepflegter Kleidung.
fsdfsdf
Unregistrierter




Beitrag fsdfsdf Unregistrierter 16:26:35 11.01.2017   Titel:              Zitieren

hab kurz in die HNF eingesetzt, komme aufs gleiche.
s=Stückvektor, n=Normale mit |n|=1, p=irgendein Punkt
abs(n*(p-s))=dist
cl90
Mitglied

Benutzerprofil
Anmeldungsdatum: 15.01.2012
Beiträge: 360
Beitrag cl90 Mitglied 12:18:00 12.01.2017   Titel:              Zitieren

abs(<n,(p-s)>)=dist
Danke für diese Perfekte Lösung!

Supereffizient :)
C++ Forum :: Mathematik und Physik ::  Abstand Punkt - Ebene in Normalenform   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.net ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.