向量叉乘矩阵表示_向量点乘叉乘、矩阵、OpenGL变化

向量:向量就是在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. 投影变换:分为正投影和透视投影。我们可以通过下面的图来感受一下这两种投影的区别:

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页

打赏作者

考试点

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值