我在世界坐标系中有一个输入的3D矢量点。任何人都可以描述或提供资源的链接,这将帮助我理解并实现所需的转换和矩阵映射以转换为相机坐标吗? 这张http://www.mathworks.in/help/matlab/visualize/chview3.gif的图片 我知道这个图像中的视点坐标是世界坐标,它们转换成相机坐标
答案 0 :(得分:0)
您必须应用两个数学运算:
示例('|'仅表示向量括号)
|x'| |x| - |x_vp|
|y'| = |y| - |y_vp|
|z'| |z| - |z_vp|
Z:
|x''| | cos a -sin a 0 | |x'|
|y''| = | sin a cos a 0 | * |y'|
|z''| | 0 0 1 | |z'|
Y:
|x'''| | cos b 0 -sin b | |x''|
|y'''| = | 0 1 0 | * |y''|
|z'''| | sin b 0 cos b | |z''|
例如,如果您的VP位于(1,1,1),则首先将其移位,使旧原点位于(-1,-1,-1)。相机仍然朝向正x方向,因此您将围绕z旋转225度(现在在旧z轴上点样)然后在y周围旋转45度以直接在旧原点上进行旋转。
但是,您不要旋转相机,而是旋转相机周围的整个空间,因此您必须将角度乘以-1。
您可以在http://en.wikipedia.org/wiki/Rotation_matrix
找到更多信息如果您不知道矩阵乘法,那么第一章就会显示它。