D3DXTRANSITION_TYPE 枚举

定义网格动画的值之间的切换样式。

语法

typedef enum D3DXTRANSITION_TYPE { 
  D3DXTRANSITION_LINEAR         = 0x000,
  D3DXTRANSITION_EASEINEASEOUT  = 0x001,
  D3DXTRANSITION_FORCE_DWORD    = 0x7fffffff
} D3DXTRANSITION_TYPE, *LPD3DXTRANSITION_TYPE;

常量

D3DXTRANSITION_LINEAR

值之间的线性转换。

D3DXTRANSITION_EASEINEASEOUT

值之间的缓入、缓和样条转换。

D3DXTRANSITION_FORCE_DWORD

强制此枚举编译为大小为 32 位。 如果没有此值,某些编译器将允许此枚举编译为 32 位以外的大小。 不使用此值。

备注

从缓入到缓和的斜坡计算的计算方式如下:

Q (t) = 2 (x - y) tー + 3 (y - x) t² + x

其中,渐变是具有以下属性的函数 Q (t) :

  • Q (t) 是立方样条。
  • Q (t) 在 x 和 y 之间内插,因为 t 范围为 0 到 1。
  • 当 t = 0 且 t = 1 时,Q (t) 为水平。

从数学上看,这可转换为:

Q (t) = At² + Bt² + ct + D (,因此, Q' (t) = 3At² + 2Bt + C) 2a) Q (0) = x 2b) Q ( (1) = y 3a) Q' (0) = 0 3b) Q' (1) = 0

求解 A、B、C、D:

D = x (2a) C = 0 (3a) 3A + 2B = 0 (3b) A + B = y - x (2b,D = x)

因此:

A = 2 (x - y) ,B = 3 (y - x) ,C = 0,D = x

要求

要求
标头
D3dx9anim.h

另请参阅

D3DX 枚举