D3DXVec4Hermite 函式 (D3dx9math.h)
注意
D3DX 公用程式程式庫已被取代。 建議您改用 DirectXMath 。
使用指定的 4D 向量執行 Hermite 曲線插補。
語法
D3DXVECTOR4* D3DXVec4Hermite(
_Inout_ D3DXVECTOR4 *pOut,
_In_ const D3DXVECTOR4 *pV1,
_In_ const D3DXVECTOR4 *pT1,
_In_ const D3DXVECTOR4 *pV2,
_In_ const D3DXVECTOR4 *pT2,
_In_ FLOAT s
);
參數
-
pOut [in, out]
-
類型: D3DXVECTOR4*
D3DXVECTOR4結構的指標,這是作業的結果。
-
pV1 [in]
-
類型:const D3DXVECTOR4*
來源 D3DXVECTOR4 結構的指標,這是位置向量。
-
pT1 [in]
-
類型:const D3DXVECTOR4*
來源 D3DXVECTOR4 結構的指標,這是正切向量。
-
pV2 [in]
-
類型:const D3DXVECTOR4*
來源 D3DXVECTOR4 結構的指標,這是位置向量。
-
pT2 [in]
-
類型:const D3DXVECTOR4*
來源 D3DXVECTOR4 結構的指標,這是正切向量。
-
s [in]
-
類型: FLOAT
加權因數。 請參閱<備註>。
傳回值
類型: D3DXVECTOR4*
D3DXVECTOR4結構的指標,這是 Hermite 曲線插補的結果。
備註
D3DXVec4Hermite函式會從 (positionA、tangentA) 插補到 (使用 Hermite 曲線插補的 positionB、tangentB) 。
曲線插補是一般化輕鬆的簡易曲線。 坡形是具有下列屬性的 Q () 函式。
Q (s) = As}+ Bsー + Cs + D (,因此 Q' (s) = 3As) + 2Bs + C)
) Q (0) = v1,因此 Q' (0) = t1
b) Q (1) = v2,因此 Q' (1) = t2
v1 是 pV1 的內容、pV2 內容中的 v2、t1 是 pT1 的內容,而 t2 是 pT2 的內容。
這些屬性可用來解決 A、B、C、D。
插入 A、B、C 和 D 的解決方案,以產生 Q () 。
A = 2v1 - 2v2 + t2 + t1
B = 3v2 - 3v1 - 2t1 - t2
C = t1
D = v1
這會產生:
Q (s) = (2v1 - 2v2 + t2 + t1) sー + (3v2 - 3v1 - 2t1 - t2) sー + t1s + v1
這可以重新排列為:
Q (s) = (2sー - 3sー + 1) v1 + (-2sー + 3s) v2 + (sー - 2sー + s) t1 + (s) t2
Hermite 曲線對於控制動畫很有用,因為曲線會透過所有控制點執行。 此外,因為每個線段的結尾明確指定位置和正切值,只要您確定開始位置和正切線符合最後一個線段的結束值,就很容易建立 C2 連續曲線。
此函式的傳回值與 pOut 參數中傳回的值相同。 如此一來, D3DXVec4Hermite 函式就可以當做另一個函式的參數使用。
規格需求
需求 | 值 |
---|---|
標頭 |
|
程式庫 |
|
另請參閱