Функция D3DXVec2CatmullRom (D3dx9math.h)
Примечание
Служебная библиотека D3DX является устаревшей. Вместо этого рекомендуется использовать DirectXMath .
Выполняет Catmull-Rom интерполяцию, используя указанные двухd-векторы.
Синтаксис
D3DXVECTOR2* D3DXVec2CatmullRom(
_Inout_ D3DXVECTOR2 *pOut,
_In_ const D3DXVECTOR2 *pV0,
_In_ const D3DXVECTOR2 *pV1,
_In_ const D3DXVECTOR2 *pV2,
_In_ const D3DXVECTOR2 *pV3,
_In_ FLOAT s
);
Параметры
-
pOut [in, out]
-
Тип: D3DXVECTOR2*
Указатель на структуру D3DXVECTOR2 , которая является результатом операции.
-
pV0 [in]
-
Тип: const D3DXVECTOR2*
Указатель на исходную структуру D3DXVECTOR2 , вектор положения.
-
pV1 [in]
-
Тип: const D3DXVECTOR2*
Указатель на исходную структуру D3DXVECTOR2 , вектор положения.
-
pV2 [in]
-
Тип: const D3DXVECTOR2*
Указатель на исходную структуру D3DXVECTOR2 , вектор положения.
-
pV3 [in]
-
Тип: const D3DXVECTOR2*
Указатель на исходную структуру D3DXVECTOR2 , вектор положения.
-
s [in]
-
Тип: FLOAT
Коэффициент взвешивания. См. заметки.
Возвращаемое значение
Тип: D3DXVECTOR2*
Указатель на структуру D3DXVECTOR2 , которая является результатом интерполяции Catmull-Rom.
Комментарии
Учитывая четыре точки (p1, p2, p3, p4), найдите функцию Q(s) таким образом, чтобы:
Q(s) is a cubic function.
Q(s) interpolates between p2 and p3 as s ranges from 0 to 1.
Q(s) is parallel to the line joining p1 to p3 when s is 0.
Q(s) is parallel to the line joining p2 to p4 when s is 1.
Сплайн Catmull-Rom можно получить от сплайна Hermite, задав:
v1 = p2
v2 = p3
t1 = (p3 - p1) / 2
t2 = (p4 - p2) / 2
где:
Версия 1 — это содержимое pV0.
Версия 2 — это содержимое pV1.
p3 — это содержимое pV2.
p4 — это содержимое pV3.
Использование уравнения сплайна Эрмита:
Q(s) = (2s3 - 3s2 + 1)v1 + (-2s3 + 3s2)v2 + (s3 - 2s2 + s)t1 + (s3 - s2)t2
и подстановка значений v1, v2, t1, t2:
Q(s) = (2s3 - 3s2 + 1)p2 + (-2s3 + 3s2)p3 + (s3 - 2s2 + s)(p3 - p1) / 2 + (s3 - s2)(p4 - p2)/2
Его можно изменить следующим образом:
Q(s) = [(-s3 + 2s2 - s)p1 + (3s3 - 5s2 + 2)p2 + (-3s3 + 4s2 + s)p3 + (s3 - s2)p4] / 2
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|
См. также раздел