美文网首页
向量点乘叉乘、矩阵、OpenGL变化

向量点乘叉乘、矩阵、OpenGL变化

作者: 简单的孤寂 | 来源:发表于2020-07-16 17:59 被阅读0次

向量:向量就是在3D笛卡尔坐标中的一个顶点。单位向量就是长度为1的向量、

标量:标量是一个只有数值大小 没有方向,部分有征服之分。通俗来说标量只有大小没有方向的量。

向量和标量的区别就是 向量是有方向的。标量是没有方向的。

向量的点乘叉乘:点乘又叫向量的内积,叉乘又叫向量的外积。点乘计算得到的结果是一个标量;叉乘得到的结果是一个垂直于原向量构成平面的向量。

点乘:只能存在于2个向量之间的相乘。2个三维单元向量 之间进行点乘得到的是一个标量。 这个标量就表示为这两个向量之间的夹角。在我们开发中我们不需要进行向量之间的相乘。我们只需要去调用math3D库里面提供的点乘的API就可以了。方法有 1.float m3ddDotProduct3(const M3DVector3f u, const M3DVector3f v),这个方法我们得到的是两个向量点乘的结果。如果我们需要获取两个向量之间的角度。还需要对获得的数据进行转化。当然 API还提供了另外一个方法 可以直接获取到两个向量夹角的弧度方法2. float m3dGetAngleBetweenVector3(const M3DVector3f u , const M3DVector3d v),用这个方法我们可以直接获取到两个向量夹角的弧度。

叉乘:向量的叉乘获得到是另外一个新的向量。而这个向量是垂直于原来2个向量定义的平面垂直。叉乘和点乘不同。可以使用普通的向量相乘。如图所示

当然 叉乘API也提供了相应的方法 void m3dCrossProduct3(M3DVector3f result,const M3DVector3f u,const M3DVector3f v);

矩阵:在空间中有一个点。使用xyz来描述它。如果我们要对这个点进行移动的,我们要知道这个点新的位置。那么我们就需要通过矩阵计算来获取新的位置。矩阵不仅仅3*3或者是4*4 的这种,如果这个矩阵 只有一行或者只有一列 也可以成为矩阵。我们也可以叫他为向量。

矩阵的叉乘:矩阵的叉乘是有一个规则。这个规则定义了什么样的2个矩阵可以进行叉乘。什么样2个矩阵不能进行叉乘。如图所示:下面的图片中有框框标记的数字如果相等那么这个两个矩阵就可以相乘。如果不相等那么这两个矩阵就不能相乘。

在我们OPenGL的角度里。因为在OPenGL的约定里更多的是倾向使用一维数组。这样的原因是:OPenGL使用的是Column-Major(以列为主)矩阵排序的约定,所以在我们获取变化顶点向量的时候 使用的是矩阵左乘。

OPenGL的几种变换:

1.视图变换,即指定观察者的位置。视图变换是我们再应用场景中使用的第一种变化。简单来说 就是我们再观察一个物体的时候首先要确定观察的角度和观察的位置。只有先定义了观察者的位置 我们再对物体进行移动的时候才能观察到。

2.模型变换,就是用来操作物体通过某一种规律将物体移动到某一个位置,来进行旋转 缩放 平移,

3. 投影变换:分为正投影和透视投影。我们可以通过下面的图来感受一下这两种投影的区别:

相关文章

  • 向量点乘叉乘、矩阵、OpenGL变化

    向量:向量就是在3D笛卡尔坐标中的一个顶点。单位向量就是长度为1的向量、 标量:标量是一个只有数值大小 没有方向,...

  • 如何生动有趣的入门线性代数

    原文地址 如何生动有趣的入门线性代数 向量点乘 矩阵乘向量 向量乘矩阵 矩阵乘矩阵 矩阵的静态信息 向量空间 子空...

  • 三维向量 API

    //静态变量 //向量点乘、 叉乘参考 三维向量点乘叉乘原理[https://www.jianshu.com/p/...

  • 线性代数的几何理解

    矩阵:由基组成,表示标准基变换后的基列向量:基矩阵乘法:矩阵乘向量:矩阵变换作用于某向量;矩阵乘矩阵:两次线性变化...

  • OpenGL学习--向量与矩阵

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

  • 计算机视觉原理(一 极线几何)

    一 本质矩阵如何推导? 推导过程梳理如下: 注:1. 向量叉乘的线性性质 几何解释 叉乘(向量的外积)是物理里面常...

  • 【MATLAB】向量运算

    数量积(点乘) 向量积(叉乘) 夹角 模

  • OpenGL(3) —— OpenGL 的矩阵变换

    基本计算 向量之间的计算有 点积、叉积。矩阵之间的计算有加减、数乘、矩阵间乘法。 矩阵的缩放 位移 旋转 一个向量...

  • 向量点乘与叉乘

    说明:本文以三维向量举例,以斜体加粗字母表示向量 点乘 对于向量 A = (x1, y1, z1) ,向量 B ...

  • matlab基础学习

    文件路径,命令运行窗口,工作区; 向量和矩阵的创建,运算,乘,点乘,矩阵扩展等。

网友评论

      本文标题:向量点乘叉乘、矩阵、OpenGL变化

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