[3D数学]

一:坐标系

1.笛卡尔坐标系

2D坐标系都是‘’等价‘’的,无论原点在哪里,我们都可以通过平移将两个坐标系重合

3D坐标系则存在左手坐标系和右手坐标系的区别,两者通过平移无法完全重合,大拇指为X+, 为食指为Y+,中指为Z+,左右手可以分别描述左手坐标系和右手坐标系

2.常见的坐标系

(1)世界坐标系:描述所有物体的绝对位置的坐标系,即把所有的坐标统一到一个大的坐标系中

(2)物体坐标系:每个物体独立的坐标系,每个物体内部的部件用此坐标系计算简单直观

(3)摄像机坐标系:以摄像机位置为原点的坐标系,可以用来统一物体在摄像机空间下的计算

二:向量

1.表示

(1)向量表示方向,标量表示大小

(2)向量和点结合可以表示特定的位置,即通过将点沿向量方向平移确定位置

(3)一些特殊向量

0向量,各个分量都为0的向量,没有任何方向

2.向量的运算

(1)加减法

将向量的每个分量分别相加或者相减

几何解释,a+b表示将a,b向量首位相连得到的新向量

(2)乘法

点乘(内积):等于对应分量乘积的和,还等于向量大小相乘再乘以夹角的cos值,即结果是一个标量,描述了两个向量的相似程度,结果越大两个向量越接近

叉乘(外积):[x1,y1,z1]*[x2,y2,z2] = [y1z2-y2z1, z1x2-x1z2, x1y2-x2y1],叉乘的优先级高于点乘,运算结果仍然是一个向量,而且这个向量垂直于两个向量所在的平面,由此延伸,如果a,b两个向量互相垂直,那么和叉乘的结果组成的三个向量互相垂直,可以作为一组三维坐标

叉乘的方向确定:右手定则,aXb,四指从a到b,大拇指所指的方向就是结果向量的方向

叉乘的结果的大小:aXb = |a|*|b|*sinA,正好是以a,b向量为边的平行四边形的面积

(3)向量乘以标量等于把向量的每个分量分别乘以这个标量

(4)向量的模a(x,y)=sqrt(x*x+y*y),标准化(normalize)即用向量除以他的模

(5)自己实现向量类(实践)

三:矩阵

(1)概述:一个有r行c列的矩阵,可以这样理解,向量是标量的数组,而矩阵是向量的数组

(2)方阵:行数=列数的矩阵称作方阵,对角元素指的是行号和列号相同的元素,如果所有非对角元素都是0,那么则成为对角矩阵,单位矩阵是一种特殊的对角矩阵,对角元素均为1的对角矩阵是单位矩阵

(3)向量作为矩阵表示:1*n矩阵称为行向量,n*1称为列矩阵,可以说向量是一种特殊的矩阵

(4)矩阵的转置:将矩阵沿着对角线反折,转置可以使行向量变成列向量;特性:任意矩阵的转置的转置等于本身,任意对角矩阵的转置等于本身

(5)标量和矩阵相乘:用标量分别乘以矩阵中的每个元素

(6)矩阵乘法:

前提是a的列数等于b的行数,如果不匹配没有意义,

排列乘法,

不满足交换律(行列数可能都不匹配),

向量和矩阵相乘,等同于矩阵乘法,行向量左乘(行向量在左乘以一个矩阵)结果是行向量,列向量右乘矩阵结果是列向量;由此可以看到,向量标识三维中的点的话,可以通过矩阵对其进行变换,而保证得到的结果仍然是三维空间中的点

(7)矩阵的几何解释

几种变换:旋转,缩放,投影,镜像,仿射

四:矩阵和线性变换

(1)变换物体和坐标系

(2)旋转

(3)缩放

(4)正交投影和透视投影:前者的投影线相互垂直,后者投影线会相交

(5)镜像:沿任意轴的翻转

(6)切变:非均匀拉伸,X = X + sY,Y = Y

(7)组合变换:模型空间->世界空间->摄像机空间,三个矩阵通过矩阵乘法的结合律可以合并成一个矩阵

(8)变换的分类:

1.线性变换:F(a+b) = F(a)+F(b)

2.仿射变换:仿射变换指的是线性变换后接着平移,即任何线性变换都是仿射变换,但不是所有仿射变换都是线性变换

3.可逆变换:变幻的矩阵具有可逆矩阵,即矩阵是可逆的,则这个变换是可逆变换

4.等角变换:变换前后两个向量的大小和方向都不改变

5.正交变换:轴垂直不进行缩放变换

6.刚体变换:只改变物体的位置和方向,不包括长度,角度,面积,体积

(9)矩阵的行列式

1.行列式:右下-左上

2.矩阵积的行列式等于矩阵行列式的积|AB| = |A||B|;

3.矩阵转置的行列式等于原矩阵的行列式

4.矩阵的任意行或者列为0,那么他的行列式为0

5.交换矩阵的任意两行或者两列,行列式变为负

6.行列式的几何解释,行列式等于以基向量为两边的平行四边形的有符号面积

(10)矩阵的逆

1.矩阵的逆乘以矩阵结果是单位矩阵

2.单位矩阵的逆是他本身

3.矩阵转置的逆等于他逆的转置

4.矩阵乘积的逆等于矩阵的逆的相反顺序的乘积

5.用途,进行逆变换或者撤销原变换

(11)正交矩阵

1.矩阵乘以他的转置矩阵等于单位矩阵,即矩阵的转置矩阵等于他的逆矩阵,这样可以在计算时通过直接用逆矩阵代替转置矩阵来简化计算

2.若一个矩阵是正交的那么它应该满足:矩阵的每一行都是单位向量,矩阵的所有行互相垂直

(12)4*4齐次矩阵

3*3矩阵表示的是线性变换,不包含平移,4*4矩阵能表示平移,4D中w分量能够开关4*4矩阵的平移部分

五:方位和角位移


1.矩阵形式

优点:1.可以立即对向量进行旋转

           2.矩阵的形式被api利用,也就是矩阵可以直接拿来计算,而其他的形式则要转化成矩阵

           3.多个角位移连接直接将矩阵连接

           4.矩阵的逆,因为旋转矩阵是正交的,所以求逆只是求转置,简化计算

缺点:1.内存占用大,一个矩阵需要保存16个浮点数

           2.不直观,直接观察一个矩阵并不能知道他进行了什么角度变换

           3.矩阵可能是病态的,矩阵中的元素并不一定都是有用的

2.欧拉角

欧拉角是将角位移分解为绕三个互相垂直轴的三个旋转序列(万向锁是一个底层问题,至今没有解决方案)

优点:1.对于我们来说很直观,很容易使用

           2.表达简洁,占用内存小

           3.任意三个数都是合法的

缺点:1.给定方位的表达方式不唯一

           2.两个角度求插值非常困难(0和360,720都是一个角度)

3.四元数

一个标量+一个3D向量分量

Quaternion camPosRotation = Quaternion.Euler(rotY, rotX, 0);,将一个三维的rotation转化成一个四元数,

_CameraTrans.position = camPosRotation * PcCameraDis然后左乘一个三维的向量 可以实现对三维向量的旋转,而三维的rotation是不能直接相乘进行旋转的。

优点:1.平滑插值,其他方法不容易平滑插值

           2.快速连接和角位移求逆,四元数叉乘能将角位移序列转换为单个角位移

           3.能和矩阵形式快速转换

           4.仅用四个数表示,比较高效

缺点:1.比欧拉角稍微大一点

           2.四元数可能不合法(可以通过标准化四元数来解决)

           3.难以使用

4.各方法比较

1.欧拉角最容易使用和被人使用

2.如果在坐标系之间转换向量,选择矩阵形式

3.需要大量保存数据时使用四元数或者欧拉角,节省内存占用

4.平滑的插值只能使用四元数来完成,如果用其他形式则需要先转换到四元数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,117评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,963评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,897评论 0 240
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,805评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,208评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,535评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,797评论 2 311
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,493评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,215评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,477评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,988评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,325评论 2 252
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,971评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,807评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,544评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,455评论 2 266

推荐阅读更多精彩内容