Самоучитель по 3dsmax 7

         

При continuity = 0 они (ra и rb) равны, при continuity = 1 ra удваивается, а rb становится равным нулю


При continuity = 0 они (ra и rb) равны, при continuity = 1 ra удваивается, а rb становится равным нулю. Таким образом, параметр continuity контролирует "изломанность", негладкость сплайна.

Геометрический смысл всех этих параметров нагляднее всего можно показать в случае, когда value - 2D-вектор. Тогда cur, prev, next - какие-то точки на плоскости, сплайн - проведенная через них кривая, r - вектор-градиент кривой в точке cur, он же является касательной (точнее, направляющим вектором прямой, являющейся касательной) в этой точке. Параметр tension непосредственно изменяет длину градиента; bias меняет веса g1, g2 в g3; continuity заставляет конец градиента "ездить" вдоль g3. Все это соотвествующим образом влияет на вид самой кривой. Для лучшего понимания посмотрите на приведенную картинку, представьте себе гладкую линию (кривую), проведенную через точки prev, cur, next и учтите, что r - это желаемое нами положение касательной прямой к этой кривой в точке cur.

В начальных и конечных точках задания функции производные ra, rb считаются по-другому, так как для них нельзя указать предыдущую или следующую точку. Для начальной точки

ra = next.value - cur.value,
rb = (1.5 * (next.value - cur.value) - 0.5 * next.ra) * (1 - tension).

Для конечной точки

ra = (1.5 * (cur.value - prev.value) - 0.5 * prev.rb) * (1 - tension),
rb = cur.value - prev.value.

ra для начальной точки и rb для конечной на самом деле не используются, они приведены здесь лишь для того, чтобы формулы давали правильный результат в случае, если есть всего две точки p0, p1; тогда

p0.rb = p1.ra = (p1.value - p0.value) * (1 - tension).

Осталось упомянуть про параметры ease to и ease from.



Содержание раздела