OpenGL学习--向量与矩阵


向量

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容