编辑:我要做的是将 3d 立方体变成 2d 平面。需要注意的是,如果该点位于立方体的另一侧,则需要将最终曲面放置在十字架的所有末端。
如果一个立方体有这样的边,你可以折叠,这样 4 接触边 1。
5
1 2 3 4
6
你会有一个最终看起来像这样的二维平面
3
4/5 5 5/2
3 4 1 2 3
4/6 6 2/6
3
所以,我修改了这个。现在每个角面板都代表了两个面板之间可以发生的连接。当您最初布置此数组时,面板 2、4、5 和 6 上的每个点都将映射到三个点。如果您需要将其映射到多个点,则解决方案是到任何给定点(代表点 2)的最短线。
将 3d 立方体中的点映射到 2d 图形上最初的 1 - 6 个痛点非常简单。剩下的唯一困难是弄清楚如何将点从 2 平面映射到“2/6”平面等等。这只是考虑每种情况的问题。例如:2 -> 2/6 不同于 5 -> 5/2。我的直觉是,在将立方体的宽度沿适当方向移动之前,它要么旋转 90 度,要么旋转 -90 度。
例如,为了正确处理您布置的情况,我们将在平面 1 的左下角和平面 2 的右下角有一个值。在以下之后:'
points in plane 2/6 = rot90(points in plane 2) - width of the cube.
我们将在平面 2/6 的左下角有一个点。这将适当地成为最短路径,并且该路径适当地穿过平面 6 的面。