让(x1, y1, z1)
和是欧几里得 3 空间中的两个点,位于以原点为中心(x2, y2, z2)
的轴对齐边长 2立方体的表面上。
如何有效地计算立方体表面上的点之间的距离(或平方距离) ?
在内部,我将点表示为(offset1, offset2, faceNumber)
但一种(x,y,z)
格式(如上所述)是现成的。
我更喜欢 C 或 Python 代码,但我很乐意接受伪代码或任何东西,真的。
编辑:
一些事实:
- 最短路径在 x、y 和 z 中总是单调的。
- 如果这些点在同一张面上,那么它只是欧几里得距离。
- 如果这些点不在同一个面上,则最短路径可能涉及 2 个或 3 个面。