Swin.C

 

[3D]制作魔方

小小的制作了一个魔方

制作时没有太多需要考虑的难题。

只要建立好魔方方块的位置到方块实例(共26个映射,上下层有9个,中间层有8个)的映射关系以及面块(COLOR FACE,用于判断是否完成)的位置到面块实例(每一个面有9个面块,共6个面)的映射关系,就很容易做到旋转的效果。

大概就是从方块绝对位置可以找到这个位置上的方块实例指针,从面块的绝对位置可以找到这个位置上的面块实例指针。

一个用于对魔方进行旋转的可旋转体包含着9个魔方方块绝对位置(中间的只有8个方块),21个面块绝对位置(正面上有9个,侧面有12个)。进行旋转时,从位置找到这个位置上的实例指针,对旋转相关位置上的实例指针进行旋转替换即可(矩阵旋转)。比如,正上方的旋转体的绝对方块位置是0-8.是一个3X3的矩阵,位置内有方块实例指针

0(p0)  1(p1)  2(p2)

3(p3)  4(p4)  5(p5)

6(p6)  7(p7)  8(p8)

向右旋转时就将变成

0(p6)  1(p3)  2(p0)

3(p7)  4(p4)  5(p1)

6(p8)  7(p5)  8(p2)

以此类推,面块也是同样的做法。

下载地址:https://files.cnblogs.com/olswcsr/Magic_Cube.rar

 

posted on 2010-04-27 14:32  Swin.C  阅读(628)  评论(2编辑  收藏  举报

导航