DX怎樣進行向量運算?

Tags: 向量, 頭文件,

在使用 DirectX 11 進行遊戲開發時,需要進行大量的向量運算。那麼,在 DirectX 11中,該怎樣進行向量運算,又需要包含哪些頭文件,鏈接哪些庫呢?

下面,我就以現在市面上最流行的 VS2013為例,通過實例來教大傢俱體該怎麼做。

工具/原料

VS2013

一、頭文件、庫文件

要在 DirectX 11 中進行向量運算,需要鏈接庫文件 D3DX11.lib,包含頭文件 D3DX11.h,以及 XNAMATH.h。

DX怎樣進行向量運算

當然了,由於需要輸入輸出,iostream 頭文件是必不可少的。另外,為了輸出格式整齊美觀,我們增加一個頭文件 iomanip.h。

DX怎樣進行向量運算

最後,為了輸出的方便,我們重載了 XMVECTOR 的 << 操作符。

DX怎樣進行向量運算

二、定義XMVECTOR類型變量

在 DirectX 11 中,需要使用 XNAMATH 數學庫來進行向量運算。在 XNAMATH 數學庫中,提供了一個“通用類型向量“XMVECTOR,它可在各種類型的2D、3D、4D向量以及浮點數之間進行轉換,極大地方便了我們的操作。

在定義 XMVECTOR 對象之前,我們可先定義一個具體的2D、3D、4D向量(比如帶 3 個分量的 XMFLOAT3 類型),然後再由定義好的對象構造(轉換為) XMVECTOR 對象。下面的示例代碼演示了怎樣用 XMFLOAT3 構造兩個 XMVECTOR 對象 u 和 v。

DX怎樣進行向量運算

三、進行向量運算

首先,我們求向量長度和將向量單位化。

DX怎樣進行向量運算

再進行向量的加減法操作和標量乘法操作。

DX怎樣進行向量運算

接下來求點積和叉積。

DX怎樣進行向量運算

最後,我們格式化輸出以上運算結果。

DX怎樣進行向量運算

程序運行的結果如圖所示。

DX怎樣進行向量運算

注意事項

如果以上內容你覺得有幫助,可以點擊頁面上部的收藏以便下次方便查看。

為了感謝大家的支持,以後將在陸續推出更多的 DirectX 11 教程,歡迎關注。

相關問題答案