美文网首页
OpenGL向量、矩阵相关

OpenGL向量、矩阵相关

作者: ugpass | 来源:发表于2020-07-17 07:44 被阅读0次

向量

定义:既有大小,又有方向的一个几何对象。

单位向量:不论方向,大小为1的向量

向量大小(长度/模)的计算公式


向量大小计算公式

非单位向量(x, y, z)转化为单位向量


非零单位向量转为单位向量

向量的点乘

  • 点乘只能发生在两个单位向量之间,如果不是单位向量,需要转化成单位向量才能点乘。

  • 点乘的结果是一个标量,在[-1,1]之间,是两个向量夹角的cos值。

  • math3d.h中点乘提供了两个函数:

    • m3dDotProduct3(const float *u, const float *v):返回两个向量之间夹角的cos值。

    • m3dGetAngleBetweenVectors3(const float *u, const float *v):返回两个向量之间夹角对应的弧度。

向量的叉乘

两个向量\vec{a}\vec{b}叉乘得到的结果仍然是一个向量\vec{c},该向量\vec{c}垂直于两个向量\vec{a}\vec{b}所构成的平面。

  • math3d.h中叉乘提供了两个函数:

    • m3dCrossProduct3(float *result, const float *u, const float *v)

矩阵(Matrix)

矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合。可以用一维或二维数组表示,在OpenGL中习惯使用一维数组。

矩阵的运算

  • 加减法。只要两个矩阵行和列相等,则对应位置的元素进行加减即可。

  • 点乘。两个矩阵行数和列数相等,对应位置的元素相乘即为结果矩阵对应位置的元素。

  • 叉乘。只有第一个矩阵A的列数和第二个矩阵B的行数相等时相乘才有意义。

单位矩阵

主对角线值为1,其余值为0的矩阵称为单元矩阵

OpenGL矩阵变换

矩阵变换

行矩阵:逐行读取

行矩阵

列矩阵:逐列读取

列矩阵

行矩阵通过矩阵转置后可以得到列矩阵。

在数学中,习惯使用行矩阵来进行运算,此时mpv的顺序为position * m * v * p

在OpenGL中,习惯使用列矩阵来进行运算,此时mpv相乘的顺序为p * v * m * position

相关文章

  • OpenGL向量、矩阵相关

    向量 定义:既有大小,又有方向的一个几何对象。 单位向量:不论方向,大小为1的向量 向量大小(长度/模)的计算公式...

  • OpenGL--向量和矩阵

    在我们OpenGL中涉及到图形变换的时候经常会运用到向量/矩阵的运算。今天我们就来了解下OpenGL中的向量、矩阵...

  • OpenGL 向量、矩阵

    向量 在坐标系上,一个顶点就是X,Y,Z坐标空间的一个位置。由一个单独的XYZ定义的这样就是向量。 单位向量 向量...

  • OpenGL向量、矩阵

    向量 在 3D 笛卡尔坐标系, 基本上一个顶点就是XYZ 坐标空间上的⼀个位置。而在空间中给定的一个位置恰是由一个...

  • OpenGL 向量/矩阵

    向量 什么是向量 在3D笛卡坐标系中,基本上,一个顶点就是XYZ坐标空间上的一个位置。而在空间中给定的一个位置,恰...

  • OpenGL 矩阵基础变化

    OpenGL⾥的矩阵/向量 向量:3个值(x、y、z)组合起来表示2个重要的值,⽅向和数量. 矩阵: 在OPenG...

  • 006---OpenGL基础变化

    [toc] OpenGL 矩阵向量 向量 一个顶点同时也是一个向量. 方向 数量 长度或模为1的 当前这个顶点为 ...

  • OpenGL 向量 矩阵 变换

    向量 单位向量 标量:只有大小,例如:1,2,3...向量:既有大小又有方向。单位向量:向量长度(向量的模)为1的...

  • 六、OpenGL 向量 矩阵

    一、向量 向量是指在3D笛卡尔空间坐标系中,坐标系中的一个的一个顶点位置,这个顶点拥有X、Y、Z坐标值。 单位向量...

  • OpenGL 向量与矩阵

    1、向量 在 3D 笛卡尔坐标系, 基本上一个顶点就是XYZ 坐标空间上的⼀个位置,而在空间中给定的一个位置恰恰是...

网友评论

      本文标题:OpenGL向量、矩阵相关

      本文链接:https://www.haomeiwen.com/subject/cosphktx.html