查找立方体中某个点周围的所有点

时间:2019-01-18 12:51:50

标签: python geometry nearest-neighbor

假设我有点P0, P1, P2, P3和坐标X,Y,Z的列表

然后我有一个坐标为X1, Y1, Z1的点的列表

我必须在P0附近找到一定半径内的所有点:我是使用python scipy库通过kdtreequery_ball_point函数来完成此操作的。

但是现在我想找到一个立方体内的所有点。点(P0P1)不在矩形中居中。

矩形的

(Z)高度为Z + 4。 (Y)P0的左侧为+2,而P0的右侧为+1。 要获得X,我们需要计算P0P1之间的距离...

有什么想法吗?

我具有良好的编程知识,但缺乏数学和几何技能。

1 个答案:

答案 0 :(得分:0)

您要做的就是检查与矩形相关的每个点的所有距离条件-在所有维度x,y,z中。

假设您有一个坐标为cx,cy,cz的矩形中心

您知道距X侧的距离为dX,距Y侧的距离为dY,距Z侧的距离为dZ。

您所谓的中心的坐标是cx,cy,cz

您可以进行循环

for point in all_points:
    px,py,pz = point # coordinates of a point which you try to examine

    if abs(cx-point[x]) < dX:
        if abs(cy-point[y]) < dY:
            if abs(cz-point[z]) < dZ:
                print('point is inside so called cube')


#abs(cx-point[x]) equals distance between your center and examined point in x-axis dimension...
#dX is distance between cube side and cx (center of cube in x-axis)

注意:

此示例适用于中间居中的多维数据集。由于您的中心并非真正位于中间,因此我建议您找到中心并执行上面的示例

如果您无法计算立方体的中心,则无论如何都无法解决此问题,因此最好找到该中心。