3D游戏开发需要的数学基础(1) - 向量 Vector

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3D游戏开发需要的数学基础(1) - 向量 Vector相关的知识,希望对你有一定的参考价值。

参考技术A

做3D游戏开发的过程中,经常要和各种坐标系,向量,矩阵等各种数学运算,我在这里把常用的相关数学知识点做一下笔记,供大家共同查阅学习

点乘结果:描述了两个向量的 “相似” 程度, 点乘结果越大,两向量约相近。

A·B = |A| |B| cos(θ).

|A| cos(θ)是A到B的投影。

将 v 向量分为两个向量: v 水平, v 垂直。 并且满足 v = v 水平 + v 垂直, 平行分量 v 水平 为 v 在 n 上的投影。

另外:

向量叉乘的模,是以两个向量为边的平行四边形的面积:

下一篇:矩阵的乘法
https://www.jianshu.com/p/7bc7874a76be

游戏开发3D基础知识

概念学习:

向量

向量简介

我们将所有彼此平行的向量进行平移,使其起点与坐标原点重合,当某一向量的起始端与坐标原点重合,我们成该向量处于标准位置。这样,我们就可用向量的终点坐标来描述一个处于标准位置的向量。 我们通常用小写粗体字母表示一个向量,又是也是用大写粗体字母,比如:2D,3D,4D向量分别表示为:u=(u_x,u_y), N=(N_x,N_y,N_z),c=(c_x,c_y,c_z,c_w)。 D3DX库中,类D3DXVECTOR3表示3D空间中的向量。

向量相等

几何学中,如果两个向量长度和方向都相同,那么这两个向量相等。

向量长度

||u||= sqrt(u_x^2+u_y^2+u_z^2)

向量规范化

向量的规范化就是使向量的模变为1,即变为单位向量。可以通过将向量的每个分量都除以该向量的模来实现向量的规范化。

向量加法

向量加法定义为两个向量对应分量分别相加,只有维数相同的两个分量才能进行加法运算。
u+v = (u_x+v_x, u_y+v_y, u_z+v_z)

向量减法

u-v = u+(-v) = (u_x-v_x, u_y-v_y, u_z-v_z)

数乘

标量可以与向量相乘,顾名思义,该运算可对向量进行缩放。
ku = (ku_x,ku_y,ku_z)

点积

点积是向量代数所定义的两种乘法之一,其运算规则如下:
u*v = u_x*v_x + u_y*v_y + u_z*v_z
上述公式并不具有明显的几何意义,由余弦定理,可以发现u*v = ||u|| * ||v|| * cosθ,即两向量的点积等于两者夹角的余弦再乘以两个向量的模的乘积。

叉积

a\*b = x_1\*y_2-x_2\*y_1 = x_1 \* y_2 - x_2 \* y_1 = a \* b \* sinθ

矩阵

矩阵相等

矩阵数乘

矩阵加法

矩阵乘法

若A为m*n的矩阵,B为n*p矩阵,则乘积AB有意义,且等于一个m*p矩阵

单位矩阵

逆矩阵

矩阵转置

一个m*n矩阵的转置是一个n*m的矩阵。我们用符号M^T表示矩阵M的转置

以上是关于3D游戏开发需要的数学基础(1) - 向量 Vector的主要内容,如果未能解决你的问题,请参考以下文章

Unity3d游戏开发Unity3D中的3D数学基础---向量

游戏开发3D基础知识

3D数学基础向量

3D数学基础:图形与游戏开发笔记 第7~8章 矩阵

Unity1.3 Unity3D游戏开发学习路线

学unity3D游戏开发需要什么基础