一文讀懂矢量運算

在游戲編程或者傳統(tǒng)三維軟件中痹换,點和矢量是特別容易混淆的征字,因為它們的表示方法都一樣。比如一個點P娇豫,它的坐標表示為P=(x,y,z)匙姜,但是矢量的表示方法也是如此,那它們到底有什么區(qū)別呢冯痢?

點表示的是空間中的一個位置氮昧,它沒有方向、大小浦楣、長度這類的概念袖肥。

而矢量是一段包含了長度(又叫做模)和方向的有向線段,它也經(jīng)常被稱為向量振劳。我們常說的速度椎组,就是一種典型的矢量。

與矢量形成對比的历恐,叫做標量寸癌。標量是一種只有長度专筷、沒有方向的數(shù)學概念。生活中常提到的距離蒸苇,它其實就是一種標量磷蛹。

在這里,我們主要了解矢量溪烤,因為它貫穿于游戲編程的始終味咳。對于矢量來說,只有它的模和方向保持不變檬嘀,無論放在任何位置槽驶,都是同一個矢量。比如說下面的矢量a 和 矢量b枪眉,盡管它們在坐標系中的位置不同,但是它們的模和方向都是相同的再层,因此贸铜,它們是同一個矢量。矢量通常被用于表示相對于某個點的偏移聂受。

矢量可以和矢量做運算蒿秦,也可以和標量做運算。

矢量和標量的乘/除法

矢量和標量的運算比較簡單蛋济,它們之間只能做乘除法棍鳖,不能做加減法。矢量和標量相乘碗旅,只需要矢量的每個分量和標量相乘即可渡处,而矢量除以標量,相當于乘以標量的倒數(shù)祟辟。



從幾何意義來看医瘫,矢量乘以一個正標量k,相當于將矢量擴大了k倍旧困,方向不變醇份;而乘以一個負標量,矢量不僅擴大了|k|倍吼具,方向也會取反僚纷。


矢量的加/減法

兩個矢量相加減,只需要將每個矢量的對應分量相加減即可拗盒,最后的結(jié)果是得到一個新矢量怖竭。


矢量的加減法,它表達的是偏移的幾何意義陡蝇。

以加法為例侵状,矢量a + 矢量b赞弥,它表示的是:一個點,從a的起始位置出發(fā)趣兄,便偏移了a绽左,接著又偏移了b,就等同于進行了一個a+b的位移艇潭。這里的矢量a拼窥、b,它們的首尾是相連的蹋凝。

如果a鲁纠、b首尾不相連,就變成了減法鳍寂,a-b改含,表示的是a相對于b的偏移。


矢量的點積

矢量之間也可以進行乘法迄汛,通常有兩種類型:點積和叉積捍壤。先來說說點積。

矢量的點積有兩種公式鞍爱,第一種是矢量之間對應分量的乘積之和鹃觉,也就是:


從公式可以看出,點積是滿足乘法交換律的睹逃,也就是a * b = b * a盗扇。

點積可以用來判斷兩個矢量之間的方向夾角關系。

如果 a * b > 0,說明a和b是銳角關系沉填;

如果 a * b = 0,說明a和b是直角關系疗隶;

如果 a * b < 0,說明a和b是鈍角關系;

在游戲編程中翼闹,也通常使用點積來計算投影抽减,這和求矢量方向夾角是同一個道理。

另外橄碾,點積可以和標量進行乘法運算卵沉,并且符合乘法的結(jié)合律。

點積還可以結(jié)合矢量加法做運算法牲,相當于求點積之和史汗。

一個矢量和本身進行點積,結(jié)果是這個矢量模的平方拒垃。

這里有說到矢量的模停撞,它的求法等于矢量各分量的平方和開根號,即:

另外,模為1的矢量戈毒,被稱為單位矢量艰猬,也叫做歸一化矢量。

矢量的第二種公式是:

矢量的叉積

矢量的另一種乘法運算叫做叉積埋市,和點積不同的是冠桃,叉積的結(jié)果仍然是一個矢量,而非標量道宅。

兩個矢量的叉積用a X b來表示食听,這個x號不同于數(shù)學的乘號,這點不要混淆污茵。叉積計算也有兩種公式樱报,第一種是:

叉積不滿足交換律,即 a X b ≠ b X a泞当,但它滿足反交換律迹蛤,即a X b = -( b X a)

叉積也不滿足結(jié)合律,即 (a X b) X c ≠ a X (b X c)

從幾何意義來講襟士,兩個矢量叉積的結(jié)果盗飒,會得到一個同時垂直于這兩個矢量的新矢量,這個新矢量的模很好計算敌蜂,既可以通過模公式來得到箩兽,也可以通過矢量a津肛、b以及他們之間的夾角θ來得到

對于新矢量的方向章喉,它可能存在兩個完全相反的方向,要確定具體哪個方向身坐,就要看使用的左手坐標系還是右手坐標系秸脱。

要求a X b 新矢量的方向,如果是左手坐標系部蛇,伸直左手拇指微握其他四指摊唇,指背與矢量a方向垂直,四指彎曲方向朝矢量b靠攏涯鲁,這是拇指指向的方向巷查,就是新矢量的方向。

同樣地抹腿,如果是右手坐標系岛请,則伸出右手按照同樣的法則來判斷方向。

叉積在游戲編程中警绩,經(jīng)常用于計算垂直于一個平面崇败、三角形的矢量。另外,還可以用于判斷三角面片的朝向后室。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末缩膝,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子岸霹,更是在濱河造成了極大的恐慌疾层,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件松申,死亡現(xiàn)場離奇詭異云芦,居然都是意外死亡,警方通過查閱死者的電腦和手機贸桶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進店門舅逸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人皇筛,你說我怎么就攤上這事琉历。” “怎么了水醋?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵旗笔,是天一觀的道長。 經(jīng)常有香客問我拄踪,道長蝇恶,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任惶桐,我火速辦了婚禮撮弧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘姚糊。我一直安慰自己贿衍,他們只是感情好,可當我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布救恨。 她就那樣靜靜地躺著贸辈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪肠槽。 梳的紋絲不亂的頭發(fā)上擎淤,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天,我揣著相機與錄音秸仙,去河邊找鬼嘴拢。 笑死,一個胖子當著我的面吹牛筋栋,可吹牛的內(nèi)容都是我干的炊汤。 我是一名探鬼主播,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼抢腐!你這毒婦竟也來了姑曙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤迈倍,失蹤者是張志新(化名)和其女友劉穎伤靠,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體啼染,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡宴合,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了迹鹅。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片卦洽。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖斜棚,靈堂內(nèi)的尸體忽然破棺而出阀蒂,到底是詐尸還是另有隱情,我是刑警寧澤弟蚀,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布蚤霞,位于F島的核電站,受9級特大地震影響义钉,放射性物質(zhì)發(fā)生泄漏昧绣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一捶闸、第九天 我趴在偏房一處隱蔽的房頂上張望夜畴。 院中可真熱鬧,春花似錦鉴嗤、人聲如沸斩启。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至发绢,卻和暖如春硬耍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背边酒。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工经柴, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人墩朦。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓坯认,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子牛哺,可洞房花燭夜當晚...
    茶點故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 一陋气、笛卡爾坐標系 二維笛卡爾 二維笛卡爾坐標系包含兩個信息1.一個特殊的位置,即坐標系的中心——原點引润。2.兩條過原...
    BacteriumFox閱讀 13,649評論 0 3
  • C2/目錄: 1.向量/矢量 vector 在物理專業(yè):向量只需滿足兩個條件:方向和大小巩趁。(可以隨便移動) 線代:...
    大廠offer寶典閱讀 629評論 0 1
  • 矢量的表示 1.矢量的運算 1.1 矢量的加法和減法 1.2 矢量與標量scale的乘積 1.3 矢量的模(矢量的...
    yandaren閱讀 1,401評論 0 0
  • 點與矢量 簡書不識別公式,有道云支持淳附,后續(xù)修改 點(2維或3維) 坐標系類型根據(jù)實際情況選擇合適坐標系笛卡爾坐標系...
    龍遁流閱讀 615評論 0 0
  • 本文記錄《第4章 學習Shader所需的數(shù)學基礎》的矩陣基礎知識內(nèi)容议慰。 笛卡爾坐標系 二維笛卡爾坐標系 二維笛卡爾...
    代碼咖啡閱讀 580評論 0 0