魔方(旋转和跟踪)
Rubik's cube (Rotation and tracking)
我是c++和openGL的新手,所以请记住,我的编码技能不是一流的,但我学得很快。
所以,因为我最喜欢的拼图是魔方,所以我决定释放我的创造力,所以现在我正在制作一个3D魔方,我用四边形分别代表每个立方体(26块,不包括核心部分)。(在我学会如何使用纹理后,计划在未来使用纹理)
现在我可以使用glRotatef旋转相机并查看整个立方体。
我偶然发现的主要问题是旋转每个面,同时跟踪立方体,以确定它们现在属于哪个面,也将确定如果面旋转,它们是否会受到影响。
在这一点上,我已经意识到使用glRotatef对前进没有好处,所以我四处搜索,发现了四元数,所以我读了很多关于它们的教程,但我不知道如何实现和使用它们。
这是我读过的最后一篇教程:
http://www.cprogramming.com/tutorial/3d/quaternions.html
我的请求将是一个非常简单的例子,说明如何实现它并在我的显示功能中使用它。
至于跟踪立方体,我目前正在考虑对每一块使用6个布尔值来确定它们在中心块中的位置。
如果你在管理面部旋转方面还有其他更好的想法或概念,请告诉我。
问候,,
我偶然发现的主要问题是旋转每个面,同时跟踪立方体以确定它们现在属于哪个面,还将确定如果面旋转,它们是否会受到影响。
这基本上就是你的整个算法。您可以做的是拥有一个包含6个"面"的数据结构。这些面是立方体的侧面。每个面都有一个指向NorthFace、SouthFace、EastFace和WestFace的指针。此外,每个面将包含3行3列立方体。你现在应该有必要的操作,移动一个脸上下,依此类推
相关文章:
- 与互斥锁相比,旋转锁可以保证上下文切换
- 绘制旋转的三角形
- 光线跟踪器灯光反射错误
- 旋转模型矩阵时的形状失真
- 人脸跟踪arduino代码的优化
- 四边形的 2D 旋转
- 跟踪滚动条上的鼠标事件
- 垂直方向的 Gtk3+ 旋转按钮 (c/c++)
- 发布旋转矩阵(openGL/glm)
- 如何使用新运算符跟踪在循环中创建的 QLabel
- 顺时针迭代旋转 3 位数字
- 形状对象的旋转和缩放不正确C++
- 如何在 OpenSceneGraph 中缩放/旋转/移动资产
- C++:跟踪类对象
- 用于解析 win64 堆栈跟踪的命令行客户端(可以访问符号服务器)
- 跟踪日志中的T.11803()是什么意思?
- 如何有效地计算将单位立方体映射到自身的反射和旋转?
- 子轴围绕父轴而不是他自己的轴旋转
- 魔方(旋转和跟踪)
- 跟踪移动旋转矩形 c++ openGL 的角