魔方(旋转和跟踪)

时间:2012-11-17 19:34:04

标签: c++ opengl rubiks-cube

我是c ++和openGL的新手,所以请记住,我的编码技巧不是一流的,但我是一个快速学习者。

所以,因为我最喜欢的拼图是魔方,所以我决定释放我的创造力,所以现在我正在制作一个3D魔方,我用四边形分别代表每个立方体(26件不包括核心部分) (在我学会如何使用它们之后计划在将来使用纹理)

现在我可以使用glRotatef旋转相机并查看整个立方体。

我偶然发现的主要问题是自己旋转每个面并跟踪立方体以确定它们现在属于哪个面,这也将决定面部旋转时它们是否会受到影响。

此时我已经意识到使用glRotatef将不会带来前进的好处所以我四处搜索并发现 Quaternions 所以我已经阅读了一些关于它们的教程,但我不知道如何实现它们并使用它们。

这是我读过的最后一个教程:

http://www.cprogramming.com/tutorial/3d/quaternions.html

我的请求将是一个非常简单的示例,说明如何实现它并在我的显示功能中使用它。

至于跟踪立方体的情况,我现在正在考虑为每件作品使用6个布线来确定它们通过中心部分的位置。

如果您有关于管理面部轮换的任何其他更好的想法或概念,请告诉我们。

此致,,

1 个答案:

答案 0 :(得分:0)

  

我偶然发现的主要问题是自己旋转每个面并跟踪立方体以确定它们现在属于哪个面,这也将决定面部旋转时它们是否会受到影响。

这基本上就是你的整个算法。你可以做的是拥有一个包含6个“面孔”的数据结构。这些面是立方体的两侧。每个面都有一个指向NorthFace,SouthFace,EastFace和WestFace的指针。此外,每个面将包含3行3列立方体。您现在应该有必要的操作来向下移动面部等等。