Р(2) - У0, Р(3) = у,, р(А) - у2.....р(7) - у5.

Поскольку В-сплайн функции при целых значениях с принимают только значения 0, 1/6 и 4/6, то шесть указанных выше условий принимают вид:

4с0 + с, - 6у0, с0 + 4с, + с2 - 6#,, с, + 4с2 + с3 - 6у2, (11.101)

сА+4с5-6у5.

Эти уравнения почти идентичны уравнениям (11.76) и (11.77), поэтому их можно решить методами, описанными в разделе 11.10.3.

Все эти идеи легко могут быть распространены на любое число заданных точек у0,у1.....yL, для любого нужного L. Напишите функцию

void adjust (double у[]. double с[]. int L)

которая по заданному массиву у[] создает массив с[].

Для интерполяции точек pi - (xjt у) описанный процесс выполняется один раз для х-компонентов и один раз для ^-компонентов, в результате чего создаются массивы x_new[] и y_new[]. Тогда интерполирующая кривая задается формулой:

p(t)= ХВД.4(0.

1 = 0

где Wi = (x_new[], y_new[]). Пример такой кривой приведен на рис. 11.66.

11.13. Тематические задания

Пример двумерной интерполяции B-сплайнами (с разрешения Tuan Le Ngoc)

Рис. 11.66. Пример двумерной интерполяции B-сплайнами (с разрешения Tuan Le Ngoc)

Напишите программу, которая позволяет пользователю задавать с помощью мыши последовательность из (L + 1) контрольных точек, а затем рисует интерполирующую кривую на базе кубических B-сплайнов. Поэкспериментируйте с различными значениями L.

Дополнительное задание. Расширьте свою программу так, чтобы она рисовала замкнутые кривые, интерполирующие контрольные точки. Какие изменения должны быть для этого сделаны в уравнении (11.101)?

Тематическое задание 11.7. Интерполяция кубическими полиномами Уровень сложности III.

Напишите программу, которая позволяет пользователю задавать с помощью мыши последовательность из (L +1) контрольных точек, а затем рисует интерполирующую кривую на базе кубических полиномов. Скорости на внутренних стыках задаются с помощью метода Кочанека-Бартелса при определенных значениях параметров натяжения, смещенности и непрерывности. Два оставшихся условия на кубические коэффициенты определяются исходя из требования, чтобы вторые производные на концевых контрольных точках равнялись нулю.


⇐ Предыдущая| |Следующая ⇒