OpenGL -- 向量与矩阵

2021-09-12  本文已影响0人  木扬音

向量

单位向量

长度为1的向量,向量长度通过下列公式计算


image.png
//3维向量  -- XYZ
M3DVector3f
//4维向量  -- XYZW   W==缩放因子
M3DVector4f

向量 点乘

//获取两个向量之间的点乘结果
m3dDotProduct3(const M3DVector3f u, const M3DVector3f v);
//获取两个向量之间的夹角弧度值
m3dGetAngleBetweenVectors3(const M3DVector3f u, const M3DVector3f v);

向量 叉乘

两个普通向量之间叉乘可以得到另外一个向量,新向量会与原来两个向量平面垂直

//叉乘
m3dCrossProduct3(M3DVector3f result, const M3DVector3f u, const M3DVector3f v);

矩阵

在OpenGL中以列优先

image.png
//单元矩阵初始化①
GLfloat m[] = {
            1,0,0,0,    //X
            0,1,0,0,    //Y
            0,0,1,0,    //Z
            0,0,0,1,    //W
    };

//单元矩阵初始化②
M3DMatrix44f m = {
                1,0,0,0,    //X
                0,1,0,0,    //Y
                0,0,1,0,    //Z
                0,0,0,1,    //W
    };

//单元矩阵初始化③
m3dLoadIdentity44(M3DMatrix44f m);

矩阵相乘

顶点向量 = (((投影矩阵 * 观察者矩阵) * 模型矩阵) * 顶点)

上一篇 下一篇

猜你喜欢

热点阅读