Пример: формат данных сплайна
Объект "сплайновая кривая" представляет собой неоднородный кубический сплайн, заданный серией трехмерных точек, касательными векторами в каждой точке и массивом ненормализованных параметров сплайна в каждой точке.
Формат данных:
params[]
(dbl)
Массив параметров сплайна (t) в каждой точке
points[][3]
(dbl)
Массив точек-интерполянтов сплайна
tangents[][3]
(dbl)
Массив касательных векторов в каждой точке
Параметризация:
1. x, y и z представляют собой серию уникальных кубических функций, по одной на сегмент, полностью определяемых начальными и конечными точками, а также касательными к каждому сегменту.
2. Пусть p_max — параметр последней точки сплайна. Тогда t', ненормализованный параметр, равен t * p_max.
3. Расположить сегмент сплайна так, чтобы:
par_arr[i] < t' < par_arr[i+1]
(если t < 0 or t > +1, использовать первый или последний сегмент).
14.\t0 = (t' - par_arr[i]) / (par_arr[i+1] - par_arr[i])
t1 = (par_arr[i+1] - t') / (par_arr[i+1] - par_arr[i])
Было ли это полезно?