О ВАРИАЦИОННОЙ ЗАДАЧЕ ДЛЯ ДЕФОРМАЦИИ ПАРАМЕТРИЧЕСКОЙ ПОВЕРХНОСТИ
Берзин Д.В.
Кандидат физико-математических наук, доцент, Финансовый университет при Правительстве Российской Федерации, Москва
О ВАРИАЦИОННОЙ ЗАДАЧЕ ДЛЯ ДЕФОРМАЦИИ ПАРАМЕТРИЧЕСКОЙ ПОВЕРХНОСТИ
Аннотация
Допустим, мы решили трансформировать поверхность минимальным образом, чтобы соблюсти определенные условия непрерывности с ее соседями. В настоящей работе сформулирована проблема достижения условия непрерывности G и выписаны соответствующие уравнения для решения этой задачи.
Ключевые слова: информационные технологии, условие непрерывности G, NURBS, оптимальное решение
Berzin D.V.
PhD, Associate Professor,
Financial University under the Government of the Russian Federation, Moscow
ABOUT A VARIATIONAL PROBLEM FOR PARAMETRIC SURFACE DEFORMATION
Abstract
Suppose we want to deform a base surface of a face to achieve certain continuity condition (for example, G continuity) with the given neighbors at common edges. We formulate a problem for preserving G continuity and give equations for a deformation that changes the surface geometry as little as possible.
Keywords: Information technology, G continuity, NURBS, optimal solution.Предположим, что грань F0 окружена некоторым количеством соседних граней F1, F2, …. Мы хотим деформировать (начальную) базовую поверхность грани F0 для того, чтобы достичь некоторого условия непрерывности (например, условия G ) с данными соседними поверхностями у общих ребер. Такая деформация должна минимально изменять геометрию поверхности.
- Функционал “сдвиг кривой”
Обозначим векторы начальных и измененных (деформированных) контрольных точек как соответственно. Рассмотрим кривую c(t), которая принадлежит (или располагается рядом с) начальной (не деформированной) поверхности S(P). пусть
w = w(c, t) = (u(t),(v(t)) (1) uv-кривая, соответствующая c (t). Рассмотрим класс трехмерных кривых с фиксированным w и переменной P: (2) Рассмотрим функционал (3)который выражает расстояние (или максимальный зазор) между начальной и деформированной кривыми. Назовем этот функционал “сдвиг кривой”.
- Другие функционалы
Рассмотрим еще два типа функционалов: H(P) и G(P). Функционал H(P), который мы назовем "сдвиг контрольной точки" выражает расстояние между множеством контрольных точек P и P. H(P) служит для контроля отклонения деформированной поверхности от начальной. Функционал "непрерывности" G(P) служит для того, чтобы выполнялось условие непрерывности, например, условие G¹ с соседними гранями.
- Квази-G¹
Вместо условия G¹, мы можем попытаться достичь несколько другого (и в некотором смысле более строгого условия, чем G¹), которое, тем не менее, приведет к линейности в вариационной задаче. Пусть E - это произвольная, но фиксированная точка на некотором ребре, которое является общим для грани F0 и соседней грани F1.
Рассмотрим плоскость π , которая является касательной в точке E к базовой поверхности грани F1. Пусть - соответствующие касательные векторы (исходящие из точки E и направленные вдоль u и v соответственно) к начальной базовой поверхности S(P) грани F0. Спроектируем на плоскость π, получим пару векторов соответственно. Теперь мы можем выписать функционал "непрерывности" для этого условия в точке E:
(4)где - соответствующие касательные векторы к деформированной поверхности S(P), а α и β являются действительными переменными. Соответственно, функционал непрерывности для множества точек Ω - это .
- Вариационная задача
где константы k , k , k могут служить как веса и находятся эмпирически. В конечном счете, нашей целью является нахождение минимума:
F(P)→ min (6) Эта вариационная задача без ограничений (см. [1]) может быть решена в соответствии с теоремой Ферма: (7) где - это решение данной задачи.- Замечания
При нашем подходе, количество узлов и количество контрольных точек остаются теми же самыми после деформации. Возможно, это ограничение не позволит достичь точного условия непрерывности и сохранения граничных кривых в пределах заданных допусков. Необходимо измерить непрерывность и сдвиги кривых, и, если необходимо, вставить дополнительные узлы в исходную поверхность, и после этого начать деформацию снова.
Все слагаемые в (5) должны иметь квадратичную форму, так что система (7) станет линейной. В нашей первой реализации мы для простоты будем считать, что .
Условие "квази-G¹" - это, конечно, не то же самое, что G¹, но мы ожидаем, что в общем (6) "заставит" соответствующие касательные плоскости приблизиться к желаемым положениям.
- Алгоритм
Приведем ниже описание алгоритма для достижения нужной деформации (см. также [2]). Чтобы вычислить новые расположения контрольных точек, мы должны выполнить следующие основные шаги:
1) Составить вектор из (N+1) контрольных точек для начальной поверхности.
2) Отобрать (d+1) точку выборки, чтобы сохранить положения граничных кривых . Будем называть эти точки “G0 точки выборки”.
3) Отобрать (g+1) точку выборки, чтобы сохранить непрерывность . Будем называть эти точки “G1 точки выборки”. В нашем исполнении, множество G1 точек выборки является подмножеством G0 точек выборки.
4) Вычислим “желаемую” касательную плоскость в каждой G1 точке выборки и получим 2(g+1) соответствующих проекций касательных векторов к начальной поверхности на касательную плоскость: . Другими словами, получаем пару трехмерных векторов для каждой G1 точки выборки.
5) Вычислим два вектора, каждый из которых состоит из (g+1) константы: .
6) Вычислим (N+1)-вектор для каждой G0 точки выборки используя базисные функции B-сплайна.
7) Вычислим пару (N+1)-векторов для каждой G1 точки выборки используя базисные функции B-сплайна и их производные.
8) Вычислим три (N+1)×(N+1) матрицы: .
9) Вычислим (N+1)×(N+1) матрицу .
10) Нам больше не нужны матрицы и мы можем освободить соответствующую память.
11) Вычислим три вектора, каждый из которых состоит из (N+1) константы: .
12) Нам больше не нужна матрица и вектор контрольных точек , и мы можем освободить соответствующую память.
13) Вычислим шесть (N+1)×(g+1) матриц .
14) Вычислим шесть (g+1)×(N+1) матриц .
15) Освободим память, выделенную для каждой контрольной точки.
16) Составим матрицу A. Освободим соответствующую память.
17) Составим вектор констант правой части B.
18) Решим систему уравнений, используя методы для систем с разреженными матрицами.
19) Получим множество новых контрольных точек.
20) Построим новую поверхность.
- Благодарности
Литература
- S. V. Fomin, I. M. Gelfand “Calculus of Variations” // Dover Publications, 2000
- Berzin D.V. "Surface deformation with geometric constraints" // Международный научно-исследовательский журнал = Research Journal of International Studies, №8 (15) 2013, part 1, p.6
References
- S. V. Fomin, I. M. Gelfand “Calculus of Variations” // Dover Publications, 2000
- Berzin D.V. "Surface deformation with geometric constraints" // Research Journal of International Studies, №8 (15) 2013, part 1, p.6