如何计算/描述相对位置(rubix立方体)

时间:2016-02-02 06:39:58

标签: algorithm 3d pseudocode relative representation

这是一个算法问题。我似乎找不到比较rubix立方体中2个立方体的相对位置的方法。

我在程序中编号了所有20个立方体。我正在使用他们的坐标系,但现在我想在相对位置建模两个立方体,我遇到了麻烦。

enter image description here

例如,假设我看到我正在8号和10号位置观看的两个立方体,后来我在12号和13号位置看到它们,在两种情况下它们都在立方体的同一面上,并且它们彼此相对,而不是相邻。相对来说,这与他们所在位置的表现形式相同。

(顺便说一下,我只关注此时的“边立方体”,这不是角落,所以:8 10 9 11 12 13 14 15 16 17 18 19个位置)。

所以无论如何我想如果我列出了与每个起始点相关的每个位置,使用相同的算法列出每个位置,那么我可以比较索引,如果它们是相同的,相对位置将是相同的(但是我错了,我可能走在正确的轨道上,但它并不总是有效):

08 10 18 16   12  13  14  15    09  11  19  17
09 11 19 17   13  14  15  12    10  08  16  18
10 18 16 08   14  15  12  13    11  09  17  19
11 19 17 09   15  12  13  14    08  10  18  16

12 13 14 15   11  19  17  09    16  08  10  18
13 14 15 12   08  16  18  10    17  09  11  19
14 15 12 13   09  17  19  11    18  10  08  16
15 12 13 14   10  18  16  08    19  11  09  17

16 08 10 18   19  17  09  11    13  12  15  14
17 09 11 19   16  18  10  08    14  13  12  15
18 16 08 10   17  19  11  09    15  14  13  12
19 17 09 11   18  16  08  10    12  15  14  13

考虑以下两个位置:立方体A位于第19位,立方体b位于16.它们在底层相邻。这是“19”行,它是16的索引:

0  1  2  3    4   5   
19 17 09 11   18  16  08  10    12  15  14  13

现在将其与13和9处的立方体c和d的相对位置进行比较.C和D在右侧相邻,因此它们应具有相同的相对位置。但我的方法并没有确定。

0  1  2  3    4   5   6   7     8   9
13 14 15 12   08  16  18  10    17  09  11  19

索引6不等于索引9.无论如何,这是我最好的方法,需要一整天的时间来提出。

有没有人在计算/表达立方体上两个位置之间的相对位置时会想到任何其他策略?

非常感谢您的帮助,并对此话题进行了考虑!

1 个答案:

答案 0 :(得分:1)

这里有两个问题:

  • 我认为你在计算立方体13的相对位置时犯了一个错误。我得到了:

    0  1  2  3     4  5  6  7     8  9  10 11 
    13 14 15 12    17 09 11 19    08 16 18 10
    

    这与另一个对齐,因此立方体9出现在第5行。将其与第一行进行比较:

    0  1  2  3     4   5   6
    19 17 09 11    18 16 08 10    12 15 14 13
    

    根据需要,立方体16也出现在第5位(我想你在你的问题中混淆了一些东西。你的意思是你提到索引6.你将索引编号最多为6,但是在第6位有多维数据集8,不是立方体16.请再次检查。

  • 第二个问题是,只给出一个没有方向参考立方体的立方体位置,有两种方法可以对立方体进行编号。由于您的立方体未着色,您可以将立方体旋转180度并转到参考立方体的另一个编号。鉴于立方体19的相对位置是正确的,我也可以对立方体13的相对位置进行编号,如下所示:

    0  1  2  3     4  5  6  7     8  9  10 11 
    13 12 15 14    08 16 18 10    17 09 11 19
    

    请注意,这与您的版本很接近,但索引1到3的顺序不同。我认为你对立方体的看法并不一致。

本段已经显示出主要问题:

  

例如,假设我看到了我在8号和8号位置观看的两个立方体   10,后来我在12和13位看到了它们,两者都很好   情况下,他们都在立方体的同一面,他们都是   彼此相对,不相邻。相对而言,就是这样   他们所在位置的相同表示。

对于每个立方体,有两个其他立方体位于同一面并且彼此相对。要消除这种歧义,您必须考虑方向或减少相对位置的数量(例如,当前方案中的索引1和3将表示相同的相对位置)。

相关问题