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的主要内容,如果未能解决你的问题,请参考以下文章