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

         

Они считаются через заданные (они же ключевые) значения нашей функции в самой точке-ключе...


Они считаются через заданные (они же ключевые) значения нашей функции в самой точке-ключе, следующей и предыдущей точке, а также параметры сплайна tension, continuity и bias в данной точке. Все это (значения функции и набор параметров сплайна в каком-то наборе точек) задается извне; то есть, например, читается из 3DS-файла.

Введем следующие обозначения. Пусть cur - текущая точка, next - предыдущая, prev - следующая, r - производная в текушей точке cur, которую мы и должны как-то посчитать. Пусть

g1 = cur.value - prev.value,
g2 = next.value - cur.value,
g3 = g2 - g1.

Тогда по умолчанию (это когда параметры tension, continuity, bias равны 0) производная считается как

r = g1 + 0.5 * g3.

Параметры tension, continuity и bias соответственно изменяют вес g3, а также значения r, g1, g2; с учетом этих параметров формула для производной выглядит следующим образом:

g1 = (cur.value - prev.value) * (1 + bias),
g2 = (next.value - cur.value) * (1 - bias),
g3 = g2 - g1,
ra = (1 - tension) * (g1 + 0.5 * g3 * (1 + continuity)),
rb = (1 - tension) * (g1 + 0.5 * g3 * (1 - continuity)).

Здесь уже появляются два разных значения производной ra и rb. ra - это то значение производной, которое используется, когда точка является началом отрезка сплайн-интерполяции; rb - когда концом. То есть, при интерполяции между какими-то точками p1, p2 используются значения r1 = p1.ra, r2 = p2.rb.



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