qweqweqe123123

Интерполяционная поверхность

Мы уже рассматривали проблему создания кривой, проходящей через заданные точки, — интерполяционной кривой. Часто возникает необходимость построения поверхности, проходящей через заданные точки. Особенно часто это требуется при создании геометрической модели по существующей физической. Существует множество методов интерполяции точек данных; эти методы основаны на различных уравнениях интерполяционных поверхностей. В этом разделе мы выведем уравнение В-сплайновой поверхности, проходящей через заданные точки. Обозначим точки Qp,q(p = 0, 1,..., п; q = 0, 1,..., т) в соответствии с рис. 7.9. Поскольку эти точки накладывают (n + 1)х (т+ 1) ограничений, можно выбрать любую В-сплайновую поверхность с числом задающих точек не менее (n + 1)х(m + 1). Для простоты мы рассмотрим В-сплайновую поверхность, число задающих точек которой в точности равно указанному произведению.

Интерполяционная поверхность

где Pi,j — задающие точки. Пусть каждой заданной точке Qp,q соответствуют значения параметров ир и vp1, тогда

Интерполяционная поверхность

Можно переписать выражение (7.46), обозначив ∑mj=0Pi,jNj,1(vq) символом Сi(vq):

Интерполяционная поверхность

Интерполяционная поверхность

Подстановка значений q = 0...т в выражение (7.47) дает

Интерполяционная поверхность

Подставив значения р = 0...n в первую строку выражения (7.48), мы получим задающие точки Сi(v0) (i = 0,1,.... п) В-сплайна, интерполирующего точки Q0,0, Q1,0,. Q2,0,..., Qn,0, — первой горизонтальной кривой на рис. 7.10. Аналогично, Сi(v1) (i = 0, 1, ..., n) — задающие точки В-сплайна, интерполирующего точки Q0,1, Q1,1, Q2,1,....Qn,1 — второй горизонтальной кривой на том же рисунке, и т. д. Эти задающие точки интерполяционного В-снлайна получаются методом, описанным в разделе 6.7.2.

Теперь вычислим задающие точки Рij по Сi(vq) (q = 0, 1, ..., т). Для этого запишем определение Сi(vq) еще раз:

Интерполяционная поверхность

Если теперь подставить значения q = 0...т в формулу (7.49), мы обнаружим, что Рij — задающие точки В-сплайна, интерполирующего точки Сi(v0), Ci(vr), .... Ci(vm). В частности, точки Р0,j — это задающие точки В-сплайна, интерполирующего С0(v0), С0(v1),..., Со(vm), крайние слева точки на рис. 7.10.

Приведем краткое описание процедуры вывода значений Рii,j:

□   заданные точки интерполируются В-сплайном в одном направлении (рис. 7.10);        

□   задающие точки В-сплайнов, полученных на первом этапе, интерполируются в поперечном направлении: берутся i задающие точки всех В-сплайнов из первого этапа и интерполируются В-сплайном. Задающие точки нового В-сплайна будут Pi,0, Рi,1, Рi,2,.... Рi,m.- Повторив эту процедуру для всех i от 0 до n, мы получим все задающие точки Рi,j.

Интерполяционная поверхность

Получив все задающие точки интерполяционной поверхности, мы должны определить порядки k и l и узловые значения в направлениях и и v соответственно. Чаще всего используются поверхности степени 3 по и и v, поэтому обычно берутся значения k = l = 4. Мы знаем, что узловые значения получаются в процессе вывода интерполяционной кривой (см. раздел 6.7.2). Таким образом мы получаем m + 1 наборов узловых значений в направлении и от всех интерполяционных кривых с рис. 7.10. Из этих наборов можно получить один путем усреднения. Другими словами, i узловое значение получается усреднением i-x узловых значений из каждого из m + 1 наборов. Узловые значения в направлении v получаются аналогичным образом.

 


1 Значение иp может быть получено методом, описанным в разделе 6.7.2 из узловых значений, определенных в процессе интерполяции точек Q0,q, Q1,q,.... Qn,q В-сплайном. Точно так же и vq получается из узловых значений после интерполяции Qp,0, Qp.i,...., Qp,m

 

Смотрите также