假设我有点P0, P1, P2, P3
和坐标X,Y,Z
的列表
然后我有一个坐标为X1, Y1, Z1
的点的列表
我必须在P0
附近找到一定半径内的所有点:我是使用python scipy库通过kdtree
和query_ball_point
函数来完成此操作的。
但是现在我想找到一个立方体内的所有点。点(P0
和P1
)不在矩形中居中。
(Z)高度为Z + 4。
(Y)P0
的左侧为+2,而P0
的右侧为+1。
要获得X,我们需要计算P0
和P1
之间的距离...
有什么想法吗?
我具有良好的编程知识,但缺乏数学和几何技能。
答案 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)
注意:
此示例适用于中间居中的多维数据集。由于您的中心并非真正位于中间,因此我建议您找到中心并执行上面的示例
如果您无法计算立方体的中心,则无论如何都无法解决此问题,因此最好找到该中心。