0

如何進行兩個3d向量的分量乘法?看起來MS並沒有在DirectXMath.h中提供這樣的功能,那麼微軟在那裏做什麼?在舊的SDK(DX 10/9)中,我可以直接生成兩個向量的產品:Windows應用程序編程中的3d向量的分量乘法

v3 = v1 * v2;

或由類似的標量乘的載體:

V2 = V1 * 1.0F;

但是現在,XMVECTOR類型沒有操作符*,所以我不能這樣做。所以我需要手動製作產品:

v3 =(v1.x * v2.x + v1.y * v2.y + v1.z * v2.z);

雖然不是那麼難,但我認爲DirectXMath應該提供這樣一個基本功能。

回答

2

點積可以用XMVector*Dot方法實現。 MSDN link for dot3product

而且存在良好的頁面上MSDN與方法列表:MSDN

而且,我認爲,微軟並沒有讓運營商*重寫,因爲它並不清楚這個操作人員應使用哪種產品 - 點或交叉的產物。

+0

非常感謝你,我確定我看到XMVector3Dot,但在我看來,點積的結果是標量(就像D3DXVec3Dot所做的那樣),但是現在MS將結果作爲向量。我沒有意識到這個變化,所以我錯過了這個功能。 – zdd 2013-03-25 02:04:48