OpenGL学习--向量与矩阵

2019-05-21  本文已影响0人  Harry_upup

向量

image.png 上图中(x,y,z),可以表示2个值,方向和数量。
OpenGL math3d库:库中有2个数据类型,表示三维或者四维向量。M3DVector3f表示三维向量(x,y,z),M3DVector4f表示一个四维向量(x,y,z,w),w表示缩放因子,典型情况下,w的坐标设为1.0,x,y,z值通过除以w,来进行缩放。
M3DVector3f vVector;//声明一个三分量向量
M3DVector4f vVector = {0.0f,0.0f,1.0f,1.0f};//声明四分量向量
M3DVector vVects[] = {
                      -0.5f,0.0f,0.0f,
                      0.5f,0.0f,0.0f,
                      0.0f,0.5f,0.0f
};//三分量顶点数组

点乘与叉乘
点乘运算返回2个向量之间的夹角
叉乘运算返回的是一个新的向量,这个新的向量与原来的的2个向量垂直。

矩阵

矩阵是一个按照长方阵列排列的复数或实数的集合。

image.png 另外注意的是两个矩阵的乘法仅当第一个矩阵A的列数和另一个矩阵B的行数相等时才能定义

矩阵堆栈

可以理解成一个暂时存放矩阵的地方,通过压栈(pushMatrix)和出栈(popMatrix)进行操作。(通过压栈和出栈让每一次变换相互独立)(流程图片引自https://www.jianshu.com/p/ce3b51b8f168)

image.png

可以参考https://www.jianshu.com/p/742ed58f056e

上一篇 下一篇

猜你喜欢

热点阅读