[英]C++ Rotating Cube in Coordinates (non-draw)
我一直在寻找很长一段时间而没有任何结果,一直在为自己计算数学约一个星期以上。
我的目标是设置光标位置,以使其形成旋转立方体的方式与OpenGL旋转立方体边框类似。
由于OpenGL内置了旋转功能,因此我无法适应。 我只是想知道是否有人对我将如何处理有任何想法。 如果您想知道此点是什么,则在每个创建的帧(多维数据集旋转点)上,它都具有擦除在MsPaint中绘制的所有内容的功能,然后开始绘制下一个位置,基本上是创建一个正在绘制的旋转多维数据集。
如果您尝试在C语言中旋转多维数据集而没有任何专用库的帮助,则应使用Matrix操作转换坐标。
对于2D旋转,例如(f-旋转角度,+-是旋转方向):
|cos f +-sin f| |x| |x'|
| | | | = | |
|+-sin f cos f| |y| |y'|
对于3D旋转,应使用3x3像素。 另外,您还应该旋转轴,并根据它选择矩阵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'|
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.