3D数学基础 学习笔记

左手坐标系:DX、3DMax

右手坐标系:OpenGL

世界坐标系、物体坐标系、摄像机坐标系


向量和点在数学上是等价的,向量是有大小和方向的有向线段,向量没有位置,只有大小和方向


向量运算: 

零向量:[ 0, 0, 0 ] 是唯一一个没有方向的向量

负向量:-[ x, y ] = [ -x, -y ]                

向量大小、长度、模:模(x, y) = sqrt(x² + y²)

标量与向量的乘法:2 * [ x, y ] = [ 2x, 2y ]

单位向量(标准化向量): [ x, y ] / [ sqrt(x² + y²) ]

向量点乘:a * b = | a | | b | cosx     [ x, y ] * [ a, b ] =  xa + yb

点乘的作用判断物体在玩家前方还是后方

向量叉乘:[ x, y, z ] * [ a ,b, c ] = [ y1z2 - z1y2, z1x2 - x1z2, x1y2 - y1x2 ]

a x b = | a | | b | SIN = 垂直于a与b围成的平面的向量

叉乘的作用判断物体在玩家左侧还是右侧

叉乘还有一个作用是判断物体是否在某个图形内部还是外部,例如图上,P在AB左侧,P在BC左侧,P在AC左侧,即都去计算AP向量叉乘各个向量是否同为正或者同为负。

Shear矩阵 

齐次坐标(用于平移计算):将二维转为三位,为什么向量的z轴为0,因为根据计算,防止向量的计算出来的z轴有变化,因为向量再怎么平移,它的方向都不会改变,为0那么计算出来的z轴就都为0,满足了方向不变的定理。 

 

正好这样的定理也满足这样一个规则:

vector + vector = 它的z轴也为0,为0则为向量

point - point = 它的z轴为0,所以答案为向量

point + vector = 它的z轴为1,它为点

point  + point = 它的z轴为2,正好点加点无意义 

矩阵运算:

标量与矩阵的乘法:

kM = k * [m11, m12, m13] = [km11, km12, km13]

              [m21, m22, m23]    [km21, km22, km23]

              [m31, m32, m33]    [km31, km32, km33]

矩阵与矩阵的乘法

 行对竖对应相乘相加

矩阵没有交换律,但是有结合律


矩阵和线性变换:

1、旋转

绕X轴进行旋转:

同理:

绕Y轴旋转:

[ COS, , -SIN ]

[ 0, 1, 0 ]

[ SIN, 0, COS ]

绕Z轴旋转:

[ COS, SIN, 0 ]

[ -SIN, COS, 0 ]

[ 0, 0, 1 ]


2、缩放


3、投影:

投影的本质就是从三维变成二维

以上为正交投影,将长方体变为长度为一的正方体,经过缩放和平移到原地处及完成正交投影 

透视投影就是先将大的矩形压缩成小的矩形,最后再进行正交投影 

二维Px投影到X轴,其他轴就为0,同理二维投影到Y轴,X轴就全为0

三位投影,投影到XY轴,Z轴就全为0,同理...


4、镜像:


矩阵的行列式:

矩阵只有在方阵中才具有行列式(方阵:行数和列数相同的矩阵) 


矩阵的逆:

奇异矩阵的行列式为0,奇异矩阵为不可逆矩阵 

矩阵的逆,就是A通过旋转矩阵M变为B,旋转B要变为A通过的旋转矩阵N,就是M的逆


正交矩阵: 

逆矩阵和转置矩阵相同的就是为正交矩阵 


4*4齐次矩阵:

用一个矩阵做变换 + 平移

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值