c++旋转立方体坐标(非绘制)
C++ Rotating Cube in Coordinates (non-draw)
我一直在寻找这个很长一段时间没有任何结果,一直试图找出这个自己的数学大约一个星期+。
我的目标是设置光标位置,使其形成一个旋转立方体,就像OpenGL旋转立方体边界框一样。
因为OpenGL有一个旋转函数,这不是我能适应的。我只是想知道有没有人知道我该怎么做。如果你想知道这是什么意思,在每个创建的帧(立方体旋转点)上,它有一个函数来擦除在MsPaint中绘制的任何东西,然后下一个位置开始绘制,基本上是创建一个正在绘制的旋转立方体。
如果您尝试在没有任何专门库的帮助下在C中旋转立方体,您应该使用矩阵操作来转换坐标。
- 你会得到旋转矩阵(我们叫它M)你应该把M乘到你的坐标向量上——结果是新的坐标。
表示二维旋转,示例(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'|
My(绕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'|
相关文章:
- QGraphicsPolygonItem在拖动时未更新QPolygonF坐标
- QuadTree只在窗口的右上角绘制
- 绘制旋转的三角形
- 在C++中使用GDAL可以将图像的像素坐标转换为lat,long吗
- UE4-如何在给定4个屏幕坐标的情况下缩放纹理或材质
- flutter:即使shouldRepaint()返回true,自定义画家也不会重新绘制
- 如何在QT中的自定义视频小工具t上绘制矩形
- 如何在Visual Basic中使用矩形函数OpenGL绘制矩形
- 通过 GdkPixbuf 绘制时会绘制错误的像素坐标
- 在 OpenGL 3.3 中使用整数坐标绘制点?
- 如何在OpenGL中绘制一组坐标?
- 在 c++ 生成器中检测绘制线的窗口坐标的最佳方法
- 给定两组 xyz 坐标和一个 sag (a) 的值,我可以在 OpenGL 中的这些点之间绘制一个悬链线
- C++OpenGL坐标阵列来绘制线条/边界和填充矩形
- 如何获取绘制点的新坐标
- 如何动态绘制(x,y,z)坐标
- 用给定的双坐标绘制图形
- 在循环中以特定坐标绘制
- c++旋转立方体坐标(非绘制)
- 如何在某些世界坐标下绘制立方体,OpenGL