2017-04-01 7 views
0

Ich habe eine Eingabe als Satz von Voxel mit ihren Mitte (x, y, z) gegeben. Ich habe eine Reihe von Zeilen. Ich möchte herausfinden, ob eine Linie von irgendeinem Voxel in der gegebenen Voxelmenge geschnitten wird. (Ja-nein Frage). Der aktuelle Algorithmus, den ich verwende, besteht darin, den gesamten Voxel-Satz zu durchlaufen, bis ich eine Kreuzung mit irgendeinem Voxel gefunden habe. Das braucht viel Zeit. Ist es eine Möglichkeit, es schneller zu machen?Wie kann man herausfinden, ob eine Linie ein Voxel aus einer Menge von Voxeln schneidet?

Ich finde den Schnittpunkt eines Voxels mit der Linie, indem ich den Abstand des Mittelpunkts des Voxels von der Linie berechne und überprüfe, ob es kleiner als eine kleine Menge ist.

Antwort

1

Wenn Voxel Achse ausgerichtet ist, können Sie einen beliebigen line-clipping Algorithmus verwenden, um den Schnittpunkt zu überprüfen.

Ich würde Liang-Barsky one empfehlen (prüft auf Kreuzung mit 6 Ebenen)

Verwandte Themen