【问题标题】:finding all points around a point in a cube找到立方体中一个点周围的所有点
【发布时间】:2019-06-12 17:51:08
【问题描述】:

假设我有坐标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 之间的距离...

有什么想法吗?

我有很好的编程知识,但我的数学和几何技能欠缺。

【问题讨论】:

  • 我无法理解这个问题。 P0的左边是+2,P0的右边是+1是什么意思? P0 和 P1 是什么?立方体内的点?
  • 好的。想象在每个点周围画一个矩形。并且每个点都以矩形为中心......但在我的情况下它没有居中。左侧2米,右侧1米
  • 你的问题对我来说仍然没有意义。那么你对P1了解多少? P3、P4去哪儿了?如果只知道 P0 的相对位置就很难知道什么了,那是哪个矩形呢?立方体的 Z = 0 的矩形?
  • 我可以画出我的问题并稍后发布图片,如果它有任何帮助的话......我想解决这个问题是为了我的好奇心,因为我想提高我对几何的理解。我可以在今天晚些时候亲自与您联系吗?
  • 看,如果你找不到你的立方体的中心,这意味着你不能解决这个问题。如果你想了解几何,为什么要使用 scipy 库?

标签: python geometry nearest-neighbor


【解决方案1】:

您需要做的就是检查与矩形相关的每个点的所有距离条件 - 在所有维度 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)

注意:

这个例子适用于中心在中间的立方体。由于你的中心不是真的在中间,我建议你找到中心并做上面的例子

如果你不能计算你的立方体的中心,你无论如何也不能解决这个问题,所以你最好找到中心。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-06
    • 1970-01-01
    相关资源
    最近更新 更多