使用X, Y, Z旋转摄像机
Rotating a camera using X, Y, Z
首先让我说我数学不是很好,这就是为什么我来这里问我的问题。
我已经创建了一个程序,其中相机直接看着我拥有的对象,但我现在想让相机围绕对象旋转。
当程序运行时,它会创建一个图像,我将创建多个版本的程序,然后创建多个图像文件,然后我可以将它们放在一起,使其看起来像相机围绕对象旋转。
我为我的相机位置和它所看到的方向编写的两行代码如下;
Vect campos(3, 1.5, -4);
Vect look_at(0,0,0);
我并没有要求如何编写代码来实现这种旋转,我所问的只是如何为每个值计算出不同的X,Y,Z,以便我可以围绕对象进行旋转。
谢谢大家的回答。
要获得圆的参数化,您可以使用:
x = r cos( t )
y = r sin( t )
z = z
它将从中心(0,0,0)
绕z轴以半径r
旋转。你可以让你的相机在这样的点上拍摄任何t in [0, 2 pi]
。
然后,假设您感兴趣的对象位于坐标的中心((0,0,0)
),那么您的视线已经正确设置。
编辑:在c++代码中,您可以使用以下命令:
// Add the math header to the top of the file with the includes
#include <math.h>
然后获取相机位置:
double r = 3.0;
double t = 0.0;
double x = r * cos(t);
double y = r * sin(t);
double z = -4.0;
Vect campos(x, y, z);
Vect look_at(0,0,0);
相关文章:
- 与互斥锁相比,旋转锁可以保证上下文切换
- 绘制旋转的三角形
- 旋转模型矩阵时的形状失真
- 四边形的 2D 旋转
- 垂直方向的 Gtk3+ 旋转按钮 (c/c++)
- 发布旋转矩阵(openGL/glm)
- 顺时针迭代旋转 3 位数字
- 形状对象的旋转和缩放不正确C++
- 如何在 OpenSceneGraph 中缩放/旋转/移动资产
- 将摄像机调整到俯视图
- 如何有效地计算将单位立方体映射到自身的反射和旋转?
- 子轴围绕父轴而不是他自己的轴旋转
- 将使用太多的纹理插值器 - 带旋转的着色器
- OSG地球摄像机位置
- SFML 向下移动时如何围绕屏幕中心旋转?
- 如何在OpenGL中正确旋转和缩放对象?
- FPS摄像机自行旋转.QT 4.8 OpenGL C
- Cocos2d粒子系统不跟随移动和旋转的摄像机
- 摄像机在可变重力下的旋转和方向
- 使用X, Y, Z旋转摄像机