【发布时间】:2013-05-06 15:42:20
【问题描述】:
让(x1, y1, z1) 和(x2, y2, z2) 成为以原点为中心的轴对齐边长为2 立方体表面上的欧几里得3空间中的两个点。
如何有效地计算立方体表面上的点之间的距离(或平方距离)?
在内部,我将点表示为(offset1, offset2, faceNumber),但(x,y,z) 格式(如上所述)是现成的。
我更喜欢 C 或 Python 代码,但我很乐意接受伪代码或任何东西,真的。
编辑:
一些事实:
- 最短路径在 x、y 和 z 方向上总是单调的。
- 如果这些点在同一个面上,那么它就是欧几里得距离。
- 如果这些点不在同一个面上,则最短路径可能涉及 2 个或 3 个面。
【问题讨论】:
-
“球体表面”是什么意思?什么球体?
-
@Kris,抱歉,指的是立方体。
-
所以你想要两点之间的最短路径,使得路径完全位于立方体的表面上?
-
是的,没错。
-
好吧,我想要那条路径的长度(或平方长度),我实际上并不需要该路径。
标签: language-agnostic geometry cubes