Найти все 3D точки внутри куба (3D Box) - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь выяснить 3D точки облака точек, которые находятся внутри 3D Box.Я могу получить точки внутри 3D-блока с помощью приведенной ниже логики, только когда 3D-блок выровнен по оси, но при вращении 3D-блока логика не работает.

(Это применимо только в том случае, есликрая блока выровнены с осями координат.)

Если вершины (x1, y1, z1), (x2, y1, z1), (x1, y2, z1), ⋯, (x2, y2, z2), то любая точка (x, y, z) находится внутри блока тогда и только тогда, когда

x1<x<x2
and
y1<y<y2
and
z1<z<z2

Другими словами, координаты точки находятся между координатами вершин.

Теперь я получил алгоритм от https://math.stackexchange.com/questions/2909812/points-inside-a-3d-rectangle?noredirect=1&lq=1, но не смог понять, как взять «векторы положения».

Любые предложения !!

Еще одна проблема: есть ли быстрыйспособ выяснить все точки внутри трехмерной рамки, а не перебирать все облако точек.

Любое предложение приветствуется !!!

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Поскольку вы указали point-cloud-library в тегах вопроса, pcl :: CropBox , вероятно, то, что вы ищете.В основном вы предоставляете две угловые точки , смещение и вращение , после этого вы можете извлечь все точки внутри поля.

0 голосов
/ 20 декабря 2018

I'll use the notation $\vec{OA}=\vec A-\vec O$ for a difference of position vectors. $O$ is one vertex, and $A,B,C$ are its three adjacent vertices.

O, A, B, C есть вершины кубоида.Будучи параллелепипедом , куб может быть определен тремя смежными гранями, это всего четыре точки.

...