3D图形:向量的相关计算

作者: 神经骚栋 | 来源:发表于2016-10-08 22:38 被阅读618次

遗言


恩,你没听错,就是遗言,因为大学的时候是一名学渣,没有好好学习3D图形相关的几何知识.现在用到了,才感到其强大之处,所以买了书学习一下,希望亡羊补牢,为时未晚.同时我深知这本书的枯燥之处,可能让我看完,我可能就有可能就挂了,但是不管了,就是直接搞起.不过我要事先声明,由于是重新学习,所以在文章不能面面俱到.本专题只为本人日后寻找资料时提供帮助,非解读性博客.谢谢大家.

向量运算


  • 负向量

要得到任意维度向量的负向量,只需要简单地将向量地每一个分量变负即可.数学表达式如下.

-[a1,a2,...,an-1,an] = [-a1,-a2,...,-an-1,-an]

负向量的几何意义:向量变负,就会得到一个与原向量大小相等,方向相反的向量.如下所示.

</br>

  • 向量大小(向量的模)

一个2D向量的长度计算还是很简单的,直接把向量的各个分量的平方加起来然后进行开方得到的数值就是向量的模.数学表达式如下.

‖ν‖ = √(v1²+v2²+...+vn-1²+vn²)

其实我们常用的只有2D和3D的向量的模的计算,数学表达式如下所示.

//2D向量的模
‖ν‖ = √(vx²+vy²)

//3D向量的模
‖ν‖ = √(vx²+vy²+vz²)

几何解释:我们其实就是利用了以向量为斜边的直角三角形,通过勾股定理推导出向量的模.如图所示

  • 标量与向量的乘法

标量与向量的乘法也是简单除暴,我们只需要把标量和向量中的每一个分量相乘即可.数学表达式如下所示.

κ [a1,a2,...,an-1,an] = [κa1,κa2,...,κan-1,κan]

几何解释:一个标量κ乘以一个向量可以看做是这个向量的缩放变换.缩放了κ倍.如图所示.

  • 法线(标准化向量)

法线就是单位为1的向量,也称之为单位向量或者是标准化向量.对于任意的非零向量ν都可以计算出与它方向相同的单位向量.计算方式很简单,只要用向量除以它的模即可.数学表达式如下.

ν0 = ν  /  ‖ν‖ ,ν ≠  0

几何解释:在向量ν的尾部简历坐标系,然后做单位圆,做一向量ν0与ν方向相同,尾部与原点相交,终点交于单位圆的一点.ν0就是ν的法线.


  • 向量的加法和减法

两个维度相同的向量的加减法很简单,将对应的分量做加减法即可.减法也可以解释为加负向量,a-b=a+(-b),注意的是加法满足交换律,但是只有两个向量相同的时候才满足交换律

 [a1,a2,...,an-1,an]  +  [b1,b2,...,bn-1,bn] = [a1+b1,a2+b2,...,an-1+bn-1 ,an+bn]

 [a1,a2,...,an-1,an]  -  [b1,b2,...,bn-1,bn] = [a1-b1,a2-b2,...,an-1-bn-1 ,an-bn]

几何解释:平移两个向量,使一个向量a的尾部和另外向量b的头部相交,然后从向量b的尾部向向量a的头部画一个向量.这就是两者相加所得到的向量.这也是向量加法中的"三角形法则".加法类似.

  • 向量的点乘

"点乘"说的就是来自记法a·b中的点号.注意的是向量点乘中不能省略点乘号.向量点乘就是对应分量乘积的和,结果是一个标量.其数学表达式如下.

 [a1,a2,...,an-1,an]·[b1,b2,...,bn-1,bn] = a1b1 + a2b2 +...+ an-1bn-1 + anbn

几何解释:点乘描述的是两个向量的相似程度,点乘的结果越大,两向量越相近.

v·u 角度α v与u
>0 0°≤α<90° 方向基本相同
0 α=90° 正交
<0 90°≤α<180° 方向基本相反
  • 向量的叉乘

与向量的点乘一样,"叉乘"来自记法中的a x b的叉号,叉号也是不能省略的.叉乘的结果不再是一个标量,而是一个向量.具体的数学表达式如下所示.

 [x1,y1,z1] x [x2,y2,z2] = [y1z2-z1y2, z1x2-x1z2, x1y2-y1x2];

对于叉乘的计算,我特意问问了以前的同学(我说过自己是学渣.😂)然后,就有了下面的几张叉乘讲解图.

两个向量的叉乘用行列式进行表示,其中呢,i , j ,k 是x,y,z轴的单位向量.当然了,当向量有具体的数值时候,i , j ,k 可以省略.


行列式中的具体运算规则如下所示,先是红再是蓝再是紫的顺序.没有箭头指向的乘积就是被减的那个.

几何意义:两个向量的叉乘得到的向量是垂直于原来的两个向量的.叉乘的应用就是用来床架创建垂直于平面,三角形,或者多边形的向量.


好了,向量的相关计算就说到这了.最后送上一点小福利:<<3D数学基础 图形与游戏开发>>的pdf版
<<3D数学基础 图形与游戏开发>>传送门

相关文章

  • 3D图形:向量的相关计算

    遗言 恩,你没听错,就是遗言,因为大学的时候是一名学渣,没有好好学习3D图形相关的几何知识.现在用到了,才感到其强...

  • 向量点积(Dot Product),向量叉积(Cross Pro

    向量点积(Dot Product),向量叉积(Cross Product) 参考的是《游戏和图形学的3D数学入门教...

  • js中的向量计算

    向量在图形计算中发挥了很重要的作用 在数学中,向量(也称为欧几里得向量、几何向量、矢量),指具有大小(magnit...

  • DX笔记-现在有点饿了

    DirectX9.0 基础知识:用类D3DXVETOR3表示3D空间中的向量 1.向量相等: 2.计算向量的模: ...

  • 十、OpenGL中的向量、矩阵、矩阵堆栈

    1. 向量 1.1 向量相关概念 向量:在 3D 笛卡尔坐标系中,一个由 x、y、z组成的顶点就是一个向量 单位向...

  • Qt Opengl官方教程深入浅出

    本教程提供了OpenGL和3D计算机图形的基本介绍。它展示了如何利用qt及其与OpenGL相关的类,通过使用Ope...

  • 一种正在取代WebGL的新技术-WebGPU

    WebGPU是未来用于加速图形和计算的web标准和JavaScript API的工作名称,旨在提供“现代3D图形和...

  • Unity基础-向量

    向量是2D、3D数学研究的标准工具,在3D游戏中向量是基础。 一、向量 1、向量的数学定义 向量就是一个数字列表,...

  • 0021--OpenGL Metal 案例二 渲染三角形

    [toc] 前言 MEtal选题框架,它可以渲染高级3D图形,并使用GPU执行数据并行计算. 图形渲染管道 The...

  • Metal-翻译笔记

    Framework Metal 使用图形处理器渲染高级3D图形并执行数据并行计算。 SDKs iOS 8.0+ m...

网友评论

    本文标题:3D图形:向量的相关计算

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