Função D3DXVec2Hermite (D3DX10Math.h)
Observação
A biblioteca do utilitário D3DX10 foi preterida. Em vez disso, recomendamos que você use DirectXMath .
Executa uma interpolação de spline Hermite usando os vetores 2D especificados.
Sintaxe
D3DXVECTOR2* D3DXVec2Hermite(
_Inout_ D3DXVECTOR2 *pOut,
_In_ const D3DXVECTOR2 *pV1,
_In_ const D3DXVECTOR2 *pT1,
_In_ const D3DXVECTOR2 *pV2,
_In_ const D3DXVECTOR2 *pT2,
_In_ FLOAT s
);
Parâmetros
-
pOut [in, out]
-
Tipo: D3DXVECTOR2*
Ponteiro para o D3DXVECTOR2 que é o resultado da operação.
-
pV1 [in]
-
Tipo: const D3DXVECTOR2*
Ponteiro para uma estrutura D3DXVECTOR2 de origem, um vetor de posição.
-
pT1 [in]
-
Tipo: const D3DXVECTOR2*
Ponteiro para uma estrutura D3DXVECTOR2 de origem, um vetor tangente.
-
pV2 [in]
-
Tipo: const D3DXVECTOR2*
Ponteiro para uma estrutura D3DXVECTOR2 de origem, um vetor de posição.
-
pT2 [in]
-
Tipo: const D3DXVECTOR2*
Ponteiro para uma estrutura D3DXVECTOR2 de origem, um vetor tangente.
-
s [in]
-
Tipo: FLOAT
Fator de ponderação. Consulte Observações.
Valor retornado
Tipo: D3DXVECTOR2*
Ponteiro para uma estrutura D3DXVECTOR2 que é o resultado da interpolação de spline Hermite.
Comentários
A função D3DXVec2Hermite interpola de (positionA, tangentA) para (positionB, tangentB) usando a interpolação de spline Hermite.
A interpolação spline é uma generalização do spline de facilidade e facilidade. A rampa é uma função de Q(s) com as propriedades a seguir.
Q(s) = AsPlica + Bs² + Cs + D (e, portanto, Q's) = 3As² + 2Bs + C)
a) Q(0) = v1, portanto Q'(0) = t1
b) Q(1) = v2, portanto Q'(1) = t2
v1 é o conteúdo de pV1, v2 no conteúdo de pV2, t1 é o conteúdo de pT1 e t2 é o conteúdo de pT2.
Essas propriedades são usadas para resolver para A, B, C, D.
D = v1 (from a)
C = t1 (from a)
3A + 2B = t2 - t-1 (substituting for C)
A + B = v2 - v1 - t1 (substituting for C and D)
Conecte as soluções para A, B, C e D para gerar Q(s).
A = 2v1 - 2v2 + t2 + t1
B = 3v2 - 3v1 - 2t1 - t2
C = t1
D = v1
Isso resulta em:
Q(s) = (2v1 - 2v2 + t2 + t1)s HYPER + (3v2 - 3v1 - 2t1 - t2)s² + t1s + v1
O que pode ser reorganizado como:
Q(s) = (2s HYPER - 3s² + 1)v1 + (-2s HYPER + 3s²)v2 + (s HYPER - 2s² + s)t1 + (s HYPER - s²)t2
Splines hermitas são úteis para controlar a animação porque a curva percorre todos os pontos de controle. Além disso, como a posição e a tangente são especificadas explicitamente nas extremidades de cada segmento, é fácil criar uma curva contínua C2, desde que você verifique se a posição inicial e a tangente correspondem aos valores finais do último segmento.
O valor retornado para essa função é o mesmo valor retornado no parâmetro pOut. Dessa forma, a função D3DXVec2Hermite pode ser usada como um parâmetro para outra função.
Requisitos
Requisito | Valor |
---|---|
parâmetro |
|
Biblioteca |
|
Confira também