3d数学之向量详解

向量的定义:

既有大小又有方向的量称之为向量,与之相对应的是标量,标量是只有大小没有方向的量。

一个向量的一般在头上添加一个箭头表示,比如向量V,可以表示为\vec{V}

游戏中一般以二维向量跟三维向量居多,例如一个由A点指向B点的向量,可以表示为\vec{AB},由于向量是有方向的,因此向量\vec{AB}与向量\vec{BA}并不等价

二维向量的表示为V=(V_x, V_y),如A = (2, 3), B=(-1, -4)
三维向量可以表示为V=(V_x, V_y,V_z),如A = (2, 3, 4), B = (-1, -4, 6)

需要特别注意的是两个特殊的向量:零向量跟单位向量
长度为0的向量称之为零向量,零向量与所有向量平行
模为1的向量称之为单位向量,单位向量并不是唯一的,每个向量单位化以后都是单位向量

向量的几何意义

我们都知道,位置是相对的。因此坐标轴就很重要,在游戏中,向量结合坐标轴来确定位置。

就以Unity来说,如果假设Unity的坐标轴的原点表示为O(0,0),那么一个物体的坐标点为A(3,3),实际上可以看作一条从原点O指向点A的向量,可以表示为\vec{AO}(3, 3)

向量的计算

1. 向量的数乘

向量的数乘表示向量跟一个实数相乘的乘积,结果还是一个向量。 比如实数a跟一个向量V=(V_x, V_y)相乘,结果为aV=(aV_x, aV_y)

  • 数乘的几何意义
    我们都知道,向量是有方向跟大小的,而数乘就最直观的表现就是更改向量的方向跟模的大小。
    当 a > 0时,向量V的方向不变,模变为原来的a倍
    当 a = 0时,向量变为零向量,模等于0
    当 a < 0时,向量方向变为原来相反的方向,模变为原来的|a|倍

在Unity的坐标轴中,如果一个物体的位置为A(3, 3,3),如果我们将其位置乘以2再赋值给这个物体,那么A的位置就会变成A'(6,6,6)。也就是说,我们将这个物体的位置从A点移动到了A'点。

2. 向量的加减法

- 向量的加法

两个向量相加以后的结果还是一个向量,新向量的各个分量的值等于两个向量的对应分量的加值。计算公式为A + B = (A_1 + B_1, A_2 + B_2 ... , A_n + B_n)
例如两个二维向量相加,向量C等于向量A(3, 4)加向量B(5, 6),即:C = A + B = (3+5, 4+6)

- 加法的几何意义

向量的加法,可以用平行四边形法则或者三角形法则描述:

1. 平行四边形法则:

两个向量相加,可以考虑为两个同起点的向量分别作为边长,绘制出来的一个平行四边形,这个平行四边形的以旧向量同起点的对角线就是两个向量之和所得的一条新向量

2. 三角形法则:

两个向量相加,可以考虑为这两条向量首尾相连后,分别作为三角形的两条边长,然后以第一条的起始位置,第二条的尾巴位置进行补全的一条向量,就是这两条向量的加值向量。如下图:

平行四边形法则与三角形法则
- 向量的减法

两个向量相减所得还是一个向量,这个向量的各个分量的值为旧向量的各个分量的差值。公式为:A - B = (A_1 + B_1, A_2 + B_2 ... , A_n + B_n)
例如两个二维向量相加,向量C等于向量A(3, 4)加向量B(5, 6),即:C = A - B = (3-5, 4-6)

向量的减法同样支持三角形法则,与加法所不同的是,减法的所得的最终向量,其方向是由减数向量的终点指向被减数向量的终点。

向量的减法三角形法则
- 向量的模

向量的模就是向量的长度(大小),是一个标量,用|V|表示。如果一个向量V,则存在|V| = \sqrt[]{V_1^2 + V_2^2...+V_n^2},即,向量的模等于向量的各个分量的平方之和的开平方

  • 零向量的模为零,单位向量的模为1

  • 向量的单位化:任意非零的向量,可以通过将每个分量数乘以 \frac{1}{|V|},得到的新向量就是这个向量的单位化向量
    公式为:\hat{V} = (\frac{V_1}{|V|}, \frac{V_2}{|V|}, ... \frac{V_n}{|V|})

  • 模的性质
    |V| \geq 0 零向量等于0,其他向量的模都大于0
    |aV| = |a||V| 一个实数乘以一个向量以后的模,等于一个实数乘以一个向量的模
    |A + B| \leq |A| + |B| 向量的加法支持三角形法则,也就是说,三角形的两条边长之和大于第三边

- 向量的点积

向量的点积表示为A \cdot B = A_1B_1 + A_1B_1 + ... + A_nB_n

  • 几何公式:A \cdot B = |A||B|\cos \alpha 其中\alpha为两个向量之间的夹角

  • 几何意义:点积表示了两个向量的接近程度,即夹角越小,两个向量越靠近,在等于0的时候平行,等于1的时候垂直。因此向量的点积在游戏中经常用来判断两个向量的接近程度。比如两个移动的物体是否会撞上,需要不需要避开之类的AI计算。同时,已知两个向量,可以计算两个向量的夹角。从而进行旋转操作等
    A \cdot B > 0 则夹角在[0, 90)
    A \cdot B = 0 则夹角等于 90,两个向量垂直
    A \cdot B < 0 则夹角在(90,180)

  • 性质:
    A \cdot B = B \cdot A 点乘支持交换律
    A\cdot (B + C) = A \cdot B + A \cdot C 点乘支持加法的分配律
    (aA)\cdot B = a(A\cdot B) 一个实数不影响两个向量的点乘

- 向量的叉乘

三维向量的叉乘表示为A \times B =(a_y ∗b_z −a_z∗b_y, a_z∗b_x−a_x∗b_z, a_x∗b_y−a_y∗b_x)
至于谁乘以谁减去谁,则是使用以下这个方法。
A \times B = \begin{vmatrix} {x}&{y}&{{z}}\\ a_{x}&a_{y}&{a_{z}}\\ b_{x}&b_{y}&{b_{z}}\\ \end{vmatrix}

几何意义:
两个叉乘所得出的新向量,垂直与这两个向量,并穿过这两个向量的交叉点。新向量的方向则取决于我们使用的坐标系,Unity使用的是左手坐标系,OpenGL使用的是右手坐标系。左手坐标系中,左手掌心向外,食指向上,中指向前,大拇指的方向就是x轴,食指指向的是y轴,中指指向的是z轴,将两个向量对准坐标轴,剩余的一个方向就是新向量的方向

叉积的模:|A \times B| = |A||B|sin\alpha 其中\alpha是两个向量的夹角
模的几何意义:两个三维向量的叉积的模表示以这两个向量为边长的平行四边形的面积。
根据上面的公式可知,叉积的模是两个向量的模的乘积乘以他们的sin\alpha,而sin\alpha所代表的就是求三角形高的公式。

性质:
A \times B = -(A \times B) 支持负交换律
a(A) \times B = A \times a(B) = a(A \times B) 实数与相乘可以随意切换
A \times (B + C) = A \times B + A \times C

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

推荐阅读更多精彩内容

  • 1.5、向量 一、平面向量 1、向量基础知识 向量概念:在数学中,把既有大小,又有方向的量叫做向量。判断一个量是否...
    椰子数学阅读 2,482评论 0 0
  • 这只是基础的一些数学知识,后面会为大家整理一些,unity中如何使用向量,向量在unity中的各种算法及其运算法则...
    好怕怕阅读 3,069评论 0 6
  • 第1节:零向量 1.零向量的概念 对于任意向量x,都有x+y=x,则y被称为零向量。例如,3D零向量为[0 0 0...
    予汐阅读 643评论 2 0
  • 各位朋友:上午好。今天是正月初七。 成年人最体面的告别方式: 我的最后一条信息你没有回复, 我也默契的没有再发, ...
    张燕正阅读 157评论 0 0
  • 春敏高发季 对于皮肤敏感的姐妹饱受折磨 面对易过敏季节 清洁、补水、调理巩固肌肤屏障 都是重中之重
    shiny_rain阅读 234评论 0 0