線性代數(shù)是數(shù)學(xué)的一個(gè)分支峻厚,它與向量的研究有關(guān)班利。向量可以表示為數(shù)字?jǐn)?shù)組歹撒。這個(gè)數(shù)字?jǐn)?shù)組,可以假設(shè)任何所需的長(zhǎng)度扣墩,有時(shí)也被稱為數(shù)學(xué)中的元組哲银。如果我們想要具體說(shuō)明數(shù)字?jǐn)?shù)組的長(zhǎng)度,我們可以選擇說(shuō)n元組呻惕,其中n代表向量中元素的數(shù)量荆责。下面是具有6個(gè)元素的向量的數(shù)學(xué)符號(hào)示例:
V=(a,b,c,d,e,f);
其中a亚脆,b做院,c,d濒持,e键耕,f是實(shí)數(shù)。
在計(jì)算機(jī)圖形學(xué)中柑营,矢量可用于表示空間中的位置或方向屈雄。我們還將能夠以非常強(qiáng)大和緊湊的方式通過(guò)一系列操作來(lái)轉(zhuǎn)換(或修改)這些向量。通過(guò)所謂的線性變換實(shí)現(xiàn)變換矢量?jī)?nèi)容的過(guò)程官套。
點(diǎn)和向量:
點(diǎn)是三維空間中的位置酒奶。矢量通常表示三維空間中的方向(以及一些相應(yīng)的大小)奶赔。矢量可以被認(rèn)為是指向各個(gè)方向的箭頭惋嚎。點(diǎn)和矢量是相似的,因?yàn)樗鼈兌加汕懊嫣岬降脑M符號(hào)表示:
V=(x,y,x)站刑;
其中x另伍,y,z是實(shí)數(shù)绞旅。
在數(shù)學(xué)方面摆尝,矢量可以是任意的甚至是無(wú)限大小的;
在計(jì)算機(jī)圖形學(xué)中因悲,有時(shí)為了方便起見(jiàn)堕汞,會(huì)添加第四個(gè)元素。下面給出了具有齊次坐標(biāo)的點(diǎn)的示例:
P=(x,y,z,w)囤捻;
轉(zhuǎn)換操作:
在CG中對(duì)點(diǎn)進(jìn)行的最常見(jiàn)操作之一就是簡(jiǎn)單地在空間中移動(dòng)矢量臼朗。這種轉(zhuǎn)換更具體地稱為平移,它在渲染過(guò)程中起著至關(guān)重要的作用蝎土。 平移算子只不過(guò)是對(duì)點(diǎn)的線性變換(可以看作輸入位置點(diǎn))视哑。應(yīng)用于矢量(記住,是一個(gè)方向)誊涯,平移沒(méi)有意義挡毅。這是因?yàn)橄蛄块_(kāi)始的地方(也就是它居中的地方)并不重要;無(wú)論位置如何,指向相同方向的相同長(zhǎng)度的所有“箭頭”都是等效的暴构。通常在矢量上使用另一個(gè)線性變換:旋轉(zhuǎn)跪呈。
P→Translate→P'
V→Rotate→V'
向量的長(zhǎng)度在CG中非常重要段磨。當(dāng)向量的長(zhǎng)度恰好為1時(shí),我們說(shuō)向量是標(biāo)準(zhǔn)化的耗绿。歸一化矢量的行為涉及改變矢量使得其長(zhǎng)度變?yōu)?苹支,但其方向保持不變。在計(jì)算機(jī)圖形學(xué)中误阻,大多數(shù)時(shí)候向量被歸一化债蜜。但是,在某些情況下究反,不對(duì)它們進(jìn)行歸一化可能是優(yōu)選的寻定,因?yàn)橄蛄康拈L(zhǎng)度是有意義的。
假設(shè)從A點(diǎn)到B點(diǎn)追蹤一條線精耐。創(chuàng)建的線就是一個(gè)矢量狼速,它表示點(diǎn)B相對(duì)于點(diǎn)A的位置。也就是說(shuō)卦停,它給出B的方向向胡,好像你站在A點(diǎn)。在這種情況下沫浆,矢量的長(zhǎng)度表示從A到B的距離捷枯。某些算法有時(shí)需要此距離滚秩。向量的歸一化通常是應(yīng)用程序中的錯(cuò)誤來(lái)源专执;
法線: