向量運算簡介 by 老赫

2021-04-12 17:06:29 字數 1190 閱讀 6503

如果不好好學,那麼下回我介紹乙個3d engine的時候你就麻煩大了.

質量保證:

只討論可以任意平移自由向量

以下原理適於你個人開發的3d系統,d3d系統,opengl系統

一.兩點距離

2d系統:

point1(x1,y1),point2(x2,y2)

距離d=sqr( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) )

3d系統:

point 1 (x1, y1, z1) point 2 at (x2, y2, z2).

xd = x2-x1

yd = y2-y1

zd = z2-z1

距離distance = squareroot(xd*xd + yd*yd + zd*zd)

做遊戲和demo永遠不要去做開方:

1.用lut查表技術(look up table )

2.在做碰撞檢測時,誤差distance*distance0不可見,cos<0可見

opengl就是這麼做的。

2.lambert定理求光照強度也用點積:

light=k.i.cos(theta)

k,i為常數,theta是平面法線與入射光線夾角

老王頭的fast bump(add hyper link here)也就是依據這個數學模型.但是他用了個很cheap的hack來模擬cosine

四.叉乘(cross product)

叉乘:vector1(x1,y1,z1),vector2(x2,y2,z2):

其結果是個向量.

方向是vector1,vector2構成的平面法線.再使用右手定則

長度是length(vector1)*length(vector2)*sin(theta)

theta是vector1 & vector2的夾角.

所以,平行的向量叉乘結果為0向量(長為0,方向任意)

計算結果向量:(ox,oy,oz)

ox = (y1 * z2) - (y2 * z1)

oy = (z1 * x2) - (z2 * x1)

oz = (x1 * y2) - (x2 * y1)

用途:計算法向量,這是生成3d圖形的很關鍵一步。

學會了?好樣的!你又重新達到了大學一年級的水平~~~~~~~~~~~~

向量運算簡介

向量運算簡介 作 者 老赫 如果不好好學,那麼下回我介紹乙個3d engine的時候你就麻煩大了。質量保證 只討論可以任意平移自由向量 以下原理適於你個人開發的3d系統,d3d系統,opengl系統 一.兩點距離 2d系統 point1 x1,y1 point2 x2,y2 距離d sqr x1 x...

詞向量簡介

1.什麼是詞向量?每乙個詞典 裡面存著一堆單詞,例如 用nn.embedding模組進行詞嵌入 輸出的就是對應的詞向量。2.什麼是 nn.embedding torch.nn.embedding理解 看這個解釋 3.如何訓練乙個詞向量?skip gram 模型 雖然這個任務並沒有什麼卵用,但它可以幫...

向量的運算

因為必修4沒有學好導致計算幾何掛掉了,所以來補一補tat 1.自由 向量的定義 起始點任意,方向和長度固定的有向線段。2.向量的代數表示 向量a記作a 3.向量的幾何表示 可以用乙個有向線段來表示向量。我們現在先要證明平面向量基本定理 定理內容 對於平面向量a mi nj 其中i j 為任意兩個不共...