我一直在寻找这个很长一段时间而没有任何结果,一直在试图弄清楚这个数学约一个星期+。
我的目标是设置我的光标位置,使其形成旋转立方体,就像OpenGL旋转立方体边框一样。
由于OpenGL具有内置的旋转功能,因此它并不是我能够适应的东西。 我只是想知道是否有人有任何想法我会怎么做。 如果你想知道这是什么意思,在每个创建的框架(立方体旋转点)上它有一个功能来擦除在MsPaint中绘制的任何东西,然后下一个位置开始绘制,基本上是为了创建一个正在绘制的旋转立方体。
答案 0 :(得分:0)
如果您尝试在没有任何专用库的帮助下在C中旋转立方体,则应使用Matrix运算来变换坐标。
用于2D旋转,例如(f - 旋转角度,+ - 是旋转方向):
|cos f +-sin f| |x| |x'|
| | | | = | |
|+-sin f cos f| |y| |y'|
对于3D旋转,您应该使用3x3 marix。另外你应该旋转轴,根据它你应该选择矩阵 M :
Mx (围绕x轴旋转):
|1 0 0 ||x| |x'|
|0 cos f -sin f||y| = |y'|
|0 sin f cos f||z| |z'|
我的(围绕y轴旋转):
|cos f 0 sin f ||x| |x'|
| 0 1 0 ||y| = |y'|
|-sin f 0 cos f ||z| |z'|
Mz (围绕z轴旋转):
| cos f -sin f 0 ||x| |x'|
| sin f cos f 0 ||y| = |y'|
| 0 0 1 ||z| |z'|