3D遊戲基礎 空間幾何(二) 向量運算

來源:互聯網
上載者:User

與向量相關的運算包括:向量相等,向量長度(模),向量正常化,向量加減,向量縮放,點乘,叉乘。

向量相等:

需同時滿足兩個條件, 維數相同 和 對應分量相同。

如: Ux = Vx, Uy=Vy, Uz=Vz 則, (Ux, Uy, Uz) == (Vx, Vy, Vz)

 

向量長度(用絕對值符號括上):得到的結果是響亮的長度,是一個標量

|U| = SQR(Ux*Ux + Uy*Uy + Uz*Uz)

 

向量正常化:這個過程的意義就是將向量的長度變為單位長度 “1”,得到的結果是長度為1,方向不變的向量。

V = U / |U| = (Ux / |U|, Uy / |U|, Uz / |U|)

 

向量加減:即向量間對應項做加減

U + V = (Ux+Vx, Uy+Vy, Uz+Vz) ; U - V = (Ux-Vx, Uy-Vy, Uz-Vz)

圖上顯示了向量加減的幾何意義。向量減法(U-V),就會產生從V指向U的向量;而向量加法(U+V),就得到由 U, V構成的平行四邊形的不同於 U-V 的另一條對角線。

 

向量縮放(數乘):即以一個標量乘以一個向量,這個運算可以對向量進行縮放,它會改變向量的 模。如果標量為正數,則不會改變向量的方向;如果為負數,則向量會反向。

設標量為k,向量為U

k*U = (k*Uz, k*Uy, k*Uz)

 

點乘:設向量 U 和 V,夾角 theta, Dot 代表 點乘,其運算結果是一個標量

U Dot V = Ux*Vx + Uy*Vy + Uz*Vz  = |U| * |V| * COS(theta) = s

若 s = 0,表示 theta = 90°

若 s > 0,表示 theta < 90°

若 s < 0,表示 theta > 90°

 

叉乘:用 Cross 表示,其運算結果為一向量。不滿足交換律。

U Cross V = (Px, Py, Pz) = P

Px = (Uy*Vz - Uz*Vy)

Py = (Uz*Vx - Ux*Vz)

Pz = (Ux*Vy - Uy*Vx)

結果P,為垂直於 (U, V)構成的平面。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.