這只是基礎(chǔ)的一些數(shù)學(xué)知識批什,后面會為大家整理一些农曲,unity中如何使用向量,向量在unity中的各種算法及其運(yùn)算法則與mathf函數(shù)的使用。
向量是2D乳规、3D數(shù)學(xué)研究的標(biāo)準(zhǔn)工具形葬,在3D游戲中向量是基礎(chǔ)。
一暮的、向量
1笙以、向量的數(shù)學(xué)定義
向量就是一個數(shù)字列表,對于程序員來說一個向量就是一個數(shù)組冻辩。
向量的維度就是向量包含的“數(shù)”的數(shù)目猖腕,向量可以有任意正數(shù)維,標(biāo)量可以被認(rèn)為是一維向量恨闪。
書寫向量時谈息,用方括號將一列數(shù)括起來,如[1,2,3] 水平書寫的向量叫行向量 垂直書寫的向量叫做列向量
2凛剥、向量的幾何意義
幾何意義上說侠仇,向量是有大小和方向的有向線段。向量的大小就是向量的長度(模)向量有非負(fù)的長度犁珠。
向量的方向描述了空間中向量的指向逻炊。
向量的形式:向量定義的兩大要素——大小和方向,有時候需要引用向量的頭和尾犁享,下圖所示余素,箭頭是向量的末端,箭尾是向量的開始 ****
向量中的數(shù)表達(dá)了向量在每個維度上的有向位移炊昆,例如2D向量列出的是沿x坐標(biāo)方向和y坐標(biāo)方向的位移桨吊。
3、向量與點(diǎn)
“點(diǎn)”有位置凤巨,但沒有實(shí)際的大小或厚度视乐,“向量”有大小和方向,但沒有位置敢茁。所以使用“點(diǎn)”和“向量”的目的完全不同佑淀。”點(diǎn)”描述位置彰檬,“向量”描述位移伸刃。
4、點(diǎn)和向量的關(guān)系:任意一點(diǎn)都能用 從原點(diǎn)開始的向量來表達(dá)逢倍。
二捧颅、向量運(yùn)算
1、零向量
零向量非常特殊较雕,因?yàn)樗俏ㄒ淮笮榱愕南蛄康镅啤τ谄渌我鈹?shù)m,存在無數(shù)多個大小(模)為m的向量,他們構(gòu)成一個圓谭梗。零向量也是唯一一個沒有方向的向量。
2宛蚓、負(fù)向量
負(fù)運(yùn)算符也能應(yīng)用到向量上激捏。每個向量v都有一個加性逆元-v,它的維數(shù)和v一樣凄吏,滿足v+(-v)=0远舅。要得到任意維向量的負(fù)向量,只需要簡單地將向量的每個分量都變負(fù)即可痕钢。
幾何解釋:向量變負(fù)图柏,將得到一個和向量大小相等,方向相反的向量任连。
3蚤吹、向量大小(長度或模)
在線性代數(shù)中随抠,向量的大小用向量兩邊加雙豎線表示裁着,向量的大小就是向量各分量平方和的平方根 ||v||=√(x2+y2)** (2D向量v) ||v||=****√(x2+y2+z^2) (3D向量v)******
幾何解釋:在2D中的任意向量v,能構(gòu)造一個以v為斜邊的直接三角形拱她,由勾股定理可知二驰,對于任意直角三角形,斜邊的長度平方等于兩直角邊長度的平方和秉沼。 **||v||^2 = x^2 + y^2 **
4桶雀、標(biāo)量與向量的乘法
雖然標(biāo)量與向量不能相加,但它們可以相乘唬复。結(jié)果將得到一個向量矗积。與原向量平行,但長度不同或者方向相反敞咧。
標(biāo)量與向量的乘法非常直接漠魏,將向量的每個分量都與標(biāo)量相乘即可。如:k[x,y,z] = [xk,yk,zk]
向量也能除以非零向量妄均,效果等同于乘以標(biāo)量的倒數(shù)柱锹。如:[x,y,z]/k = [x/k,y/k,z/k]
標(biāo)量與向量相乘時,不需要些乘號丰包,將兩個量挨著寫即表示相乘禁熏。
標(biāo)量與向量的乘法和除法優(yōu)先級高于加法和乘法
標(biāo)量不能除以向量,并且向量不能除以另一個向量邑彪。
負(fù)向量能被認(rèn)為是乘法的特殊情況瞧毙,乘以標(biāo)量-1。
幾何解釋:向量乘以標(biāo)量k的效果是以因子|k|縮放向量的長度,例如:為了使向量的長度加倍宙彪,應(yīng)使向量乘以2.如果k<0矩动,則向量的方向被倒轉(zhuǎn)。
5释漆、標(biāo)準(zhǔn)化向量
對于許多向量悲没,我們只關(guān)心向量的方向不在乎向量的大小,如:“我面向的是什么方向男图?”示姿,在這樣的情況下,使用單位向量非常方便逊笆,單位向量就是大小為1的向量栈戳,單位向量經(jīng)常也被稱作為標(biāo)準(zhǔn)化向量或者法線。
對于任意非零向量v难裆,都能計算出一個和v方向相同的單位向量k,這個過程被稱作向量的“標(biāo)準(zhǔn)化”子檀,要標(biāo)準(zhǔn)化向量,將向量除以它的大心烁辍(模)即可命锄。 k=v/||v||,v!=0;
零向量不能被標(biāo)準(zhǔn)化,數(shù)學(xué)上這是不允許的偏化,因?yàn)閷?dǎo)致除以零脐恩,幾何上也沒有意義,零向量沒有方向侦讨。
幾何解釋:2D環(huán)境中驶冒,如果以原點(diǎn)為尾畫一個單位向量,那么向量的頭將接觸到圓心在原點(diǎn)的單位圓韵卤。3D環(huán)境中單位向量將接觸單位球骗污。
6、向量的加法和減法
兩個向量的維數(shù)相同沈条,那么它們能相加需忿,或者相減。結(jié)果向量的維數(shù)與原向量相同蜡歹。向量加減法的記發(fā)和標(biāo)量加減法的記法相同屋厘。例如:[x,y,z] + [a,b,c] = [x+a,y+b,z+c]
減法解釋為加負(fù)向量,a-b=a+(-b) 例如: [x,y,z] – [a,b,c] = [x-a,y-b,c-z]
向量不能與標(biāo)量或維數(shù)不同的向量相加減月而。
和標(biāo)量加法一樣汗洒,向量加法滿足交換律,但向量減法不滿足交換律父款,永遠(yuǎn)有a+b = b+a,但a-b=-(b-a),僅當(dāng)a=b時溢谤,a-b = b-a
計算一個點(diǎn)到另一個點(diǎn)的位移是一種非常普遍的需求,可以使用三角形法則和向量減法來解決這個問題瞻坝,如: 上圖 **d-c **計算出 **c **到 **d **的位移向量蛛壳。
7、距離公式
8树肃、向量點(diǎn)乘
標(biāo)量和向量可以相乘蒸矛,向量和向量也可以相乘。有兩種不同類型的乘法胸嘴,點(diǎn)乘雏掠、叉乘
點(diǎn)乘的記法來至a·b中的點(diǎn)。與標(biāo)量和向量的乘法一樣劣像,向量點(diǎn)乘的優(yōu)先級高于加法和減法乡话。標(biāo)量乘法和標(biāo)量與向量的乘法可以省略乘號,但在向量點(diǎn)乘中不能省略點(diǎn)乘號耳奕。向量點(diǎn)乘就是對應(yīng)分量乘積的和绑青。其結(jié)果是一個標(biāo)量. [x,y,z] · [a,b,c] = ax+by+cz;
幾何解釋:一般來說,點(diǎn)乘結(jié)果描述了兩個向量的“相似”程度屋群,點(diǎn)乘結(jié)果越大闸婴,兩個向量越相近,**點(diǎn)乘和向量間的夾角相關(guān) **計算兩向量間的夾角 θ = arccos(a·b)
9芍躏、向量投影
給定兩個向量v和n,能夠?qū)分解成兩個分量邪乍, 它們分別垂直和平行于向量n,并且滿足 兩向量相加等于向量v对竣,一般稱平行分量為v在向量n上的投影庇楞。
平行分量公式: 平行分量 = n(v·n)/||n||^2
垂直分量公式: 垂直分量 = ||v|| – n(v·n)/||n||^2
10、向量叉乘
向量叉乘得到一個向量否纬,并且不滿足交換律姐刁。 它滿足反交換律 a × b = -(b × a) 叉乘公式:[x,y,z] × [a,b,c] = [yc-zb , za-xc , xb-ya]
當(dāng)點(diǎn)乘和叉乘在一起時,叉乘優(yōu)先計算烦味, a · b × c = a·(b×c) 因?yàn)辄c(diǎn)乘返回一個標(biāo)量聂使,同時標(biāo)量和向量間不能叉乘壁拉。
幾何解釋:叉乘得到的向量垂直于原來的兩個向量。
a × b 的長度等于向量的大小與向量夾角sin值的積柏靶,||a × b|| = ||a|| ||b|| sinθ ||a** × b||也等于以a和b**為兩邊的平時四邊形的面積弃理。
叉乘最重要的應(yīng)用就是創(chuàng)建垂直于平面、三角形屎蜓、多邊形的向量痘昌。