从位置创建旋转矩阵并查看位置

时间:2013-02-06 01:47:38

标签: c++ matrix rotation

我正在尝试创建一个函数,该函数从描述位置的顶点返回旋转矩阵,另一个顶点描述第一个位置的对象正在查看的点。到目前为止我有以下代码:

const Matrix4 Matrix4::createRotation(const Vertex& pos, const Vertex& lookat)
{
    Vector3 vz = lookat - pos;
    vz.normalize();
    Vector3 vx = Vector3::cross(Vector3( 0, 1, 0 ), vz);
    vx.normalize();
    Vector3 vy = Vector3::cross(vz, vx);

    Matrix4 rotation (  vx.x,   vy.x,   vz.x,   0,
                        vx.y,   vy.y,   vz.y,   0,
                        vx.z,   vy.z,   vz.z,   0,
                        0,      0,      0,      1);
    return rotation;
}

目前正在产生错误的结果,我很确定它位于旋转Matrix4变量的构造函数中。

此功能将与逆平移矩阵结合使用,以构建摄像机的视图矩阵。

有人能够向我解释如何做到这一点吗?

0 个答案:

没有答案