2012-04-13 8 views
0

Ich muss den Abstand von einem Punkt [x y z] zur Oberfläche eines Objekts berechnen (in diesem Stadium ein einfaches rectoid, aber später eine beliebige Form) entlang [0 0 1].Berechnen der Entfernung von einem Punkt zu einer Oberfläche entlang eines Vektors in Java?

Ich könnte tun dies Definieren der Oberflächen als Ebenen mit Einheitsvektoren und dann eine lineare Berechnung der Algebra, um den Abstand zu allen Ebenen entlang [0 0 1] aber als jemand ziemlich neu zu Codierung und Java, wollte ich Sehen Sie, ob es eine Bibliothek oder eine effizientere Möglichkeit gibt, dies zu tun, da ich auf lange Sicht komplexe konvexe Objekte haben kann. Daher müssen Sie die Standardpraktiken verwenden (damit ich die Ebenen auch anders erzeugen kann!)

Danke,

Antwort

0

Wenn Sie Point3D verwenden, um Ihre Punkte darzustellen, dann haben Sie eine Entfernungsmethode, die Sie verwenden können, um die Entfernung zu berechnen. Die Frage ist also, welchen Punkt auf der Oberfläche willst du? Wenn Sie nur einen Punkt auf der Oberfläche benötigen, können Sie einfach einen der Eckpunkte auswählen und daraus die Entfernung berechnen.

+0

Vielen Dank für Ihre Eingabe. Ich brauche den Punkt auf der Oberfläche entlang der [0 0 1] -Richtung vom [x y z] -Punkt. dh der Schnittpunkt des Linienvektors (x, y, z) + k (0,0,1) mit der Oberfläche. Dies ist eine einfache lineare Algebra Berechnung, wenn ich die Fläche eine Menge von Ebenen darstelle. Was ist die beste Oberflächenrepräsentation, die verwendet werden kann (Wikipedia weist auf ein Gesicht-Vertex-Mesh hin, könnte eine gute Idee sein?). In der Zukunft werde ich große Oberflächengitter aus verschiedenen Dateneingaben erzeugen müssen, also muss ich mit etwas anfangen, das ziemlich Standard ist. – Helicase

Verwandte Themen