Mit dot-Produkt, um zu bestimmen, ob der Punkt liegt auf einer Ebene
Gegeben: Punkt B: Punkt bekannt, auf eine Ebene P, C: das normale der Ebene, P. Kann ich ermitteln, ob Eine liegt auf P, die durch das Ergebnis eines dot-Produkt zwischen (A - B) und C null ist? (oder innerhalb einer gewissen Genauigkeit, werde ich wahrscheinlich verwenden 0.0001 f)
Ich könnte nur fehlen offensichtlich mathematische Fehler, aber dieser scheint zu sein, viel einfacher und schneller als die Umwandlung der Stelle in ein Dreieck Koordinatenraum ein.la die Antwort auf Überprüfen Sie, ob ein Punkt in einem Flugzeug-segment
So, zweitens: ich denke; wenn dies eine gültige überprüfen, wäre es rechnerisch schneller als mit matrix-Transformationen, wenn alles was ich will ist zu sehen, wenn der Punkt auf der Ebene? (und nicht, ob es liegt innerhalb eines Polygons auf dieser Ebene, ich werde wohl weiterhin mit matrix-Transformationen)
InformationsquelleAutor Stomy | 2013-06-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie richtig, B liegt auf der Ebene durch A und mit normalen P, wenn und nur wenn dotProduct(A-B,P) = 0.
Zur Schätzung der Geschwindigkeit für diese Art der Sache, man kann ziemlich viel, nur zählen die Multiplikationen. Diese Formel hat nur drei Multiplikationen, so sein wird, schneller als so ziemlich alles zu tun mit Matrizen.
Die Mathematik ist nicht so schlimm. Beachten Sie, dass in diesem Zusammenhang, normal bedeutet nur senkrecht. Die normal zu einer Ebene ist, per definition, den Vektor an, der senkrecht auf alle Vektoren liegen in einer Ebene. Denn A ist in der Ebene A - B (oder B - A) ist ein Vektor in der Ebene. Dieser Vektor ist senkrecht zu P, wenn und nur wenn dotProduct(A-B,P) = 0. Hilft das?
Was ist mit dem Flugzeug die Entfernung vom Ursprung? Das müsste berücksichtigt werden, für dieses genau zu sein.
Der Abstand vom Ursprung erweist sich abs(dotProduct(A,P)) / length(P). Dies ist die Länge der Komponente von A in Richtung von P. erwartest du etwas expliziter sein?
InformationsquelleAutor David Norman
Den oben genannten Antworten sind näher an den Beweis, aber nicht ausreichend. Es soll intuitiv, mit nur zwei Vektoren ist unzureichend, weil zum einen der Punkt P lässt sich über der Ebene und einer vertikalen Linie zu der Ebene wäre, noch generieren Sie eine null-Skalarprodukt mit irgendeinem Vektor liegen auf der Ebene, genauso, wie dies für einen Punkt P auf der Ebene. Die notwendige und hinreichende Bedingung ist, dass, wenn zwei Vektoren können gefunden werden auf der Ebene dann die eigentliche Ebene vertreten wird, eindeutig durch das Kreuzprodukt der beiden Vektoren, d.h.
w=uxv. Per definition w ist der Bereich, Vektor, welcher ist immer senkrecht zu der Ebene.
Dann für den Punkt P in Frage, den Bau einer Dritten Vektor s entweder u oder v sollte getestet werden, gegen w durch das Skalarprodukt s.t.
w.s=|w||s|cos(90)=0 impliziert, dass der Punkt P liegt auf der Ebene beschrieben durch w, die wiederum beschrieben durch Vektoren u und v.
InformationsquelleAutor Rio