О ВАРИАЦИОННОЙ ЗАДАЧЕ ДЛЯ ДЕФОРМАЦИИ ПАРАМЕТРИЧЕСКОЙ ПОВЕРХНОСТИ

Научная статья
DOI:
https://doi.org/10.18454/IRJ.2015.41.043
Выпуск: № 10 (41), 2015
Опубликована:
2015/16/11
PDF

Берзин Д.В.

Кандидат физико-математических наук, доцент, Финансовый университет при Правительстве Российской Федерации, Москва

О ВАРИАЦИОННОЙ ЗАДАЧЕ ДЛЯ ДЕФОРМАЦИИ ПАРАМЕТРИЧЕСКОЙ ПОВЕРХНОСТИ

Аннотация

Допустим, мы решили трансформировать поверхность минимальным образом, чтобы соблюсти определенные условия непрерывности с ее соседями. В настоящей работе сформулирована проблема достижения условия непрерывности 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 ) с данными соседними поверхностями у общих ребер. Такая деформация должна минимально изменять геометрию поверхности.

  1. Функционал “сдвиг кривой”

Обозначим векторы начальных и измененных (деформированных) контрольных точек как  05-11-2015 11-54-22 соответственно. Рассмотрим кривую c05-11-2015 11-57-25(t), которая принадлежит (или располагается рядом с) начальной (не деформированной) поверхности S(P05-11-2015 11-57-25). пусть

w = w(c05-11-2015 11-57-25, t) = (u(t),(v(t))                (1) uv-кривая, соответствующая c05-11-2015 11-57-25 (t). Рассмотрим класс трехмерных кривых с фиксированным w и переменной P: 05-11-2015 11-57-43            (2) Рассмотрим функционал 05-11-2015 11-58-26            (3)

который выражает расстояние (или максимальный зазор) между начальной и деформированной кривыми. Назовем этот функционал “сдвиг кривой”.

  1. Другие функционалы

Рассмотрим еще два типа функционалов: H(P) и G(P). Функционал H(P), который мы назовем "сдвиг контрольной точки" выражает расстояние между множеством контрольных точек P05-11-2015 11-57-25 и P. H(P) служит для контроля отклонения деформированной поверхности от начальной. Функционал "непрерывности" G(P) служит для того, чтобы выполнялось условие непрерывности, например, условие G¹ с соседними гранями.

  1. Квази-G¹

Вместо условия G¹, мы можем попытаться достичь несколько другого (и в некотором смысле более строгого условия, чем G¹), которое, тем не менее, приведет к линейности в вариационной задаче. Пусть E - это произвольная, но фиксированная точка на некотором ребре, которое является общим для грани F0 и соседней грани F1.

Рассмотрим плоскость π , которая является касательной в точке E к базовой поверхности грани  F1. Пусть 05-11-2015 11-59-47 - соответствующие касательные векторы (исходящие из точки E и направленные вдоль u и v соответственно) к начальной базовой поверхности S(P05-11-2015 11-57-25) грани F0. Спроектируем 05-11-2015 11-59-47 на плоскость π, получим пару векторов 05-11-2015 12-00-00 соответственно. Теперь мы можем выписать функционал "непрерывности" для этого условия в точке E:

05-11-2015 12-00-14            (4)

где 05-11-2015 12-00-35  - соответствующие касательные векторы к деформированной поверхности S(P), а α и β являются действительными  переменными. Соответственно, функционал непрерывности для множества точек Ω - это 05-11-2015 12-01-00.

  1. Вариационная задача
Теперь мы можем выписать функционал "общей ошибки" 05-11-2015 12-01-28        (5)

где константы k , k , k  могут служить как веса и находятся эмпирически. В конечном счете, нашей целью является нахождение минимума:

         F(P)→ min                            (6) Эта вариационная задача без ограничений (см. [1]) может быть решена в соответствии с теоремой Ферма:     05-11-2015 12-01-58                       (7) где  - это решение данной задачи.
  1. Замечания

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

Все слагаемые в (5) должны иметь квадратичную форму, так что система (7) станет линейной. В нашей первой реализации мы для простоты будем считать, что 05-11-2015 12-02-29.

 Условие "квази-G¹" - это, конечно, не то же самое, что G¹, но мы ожидаем, что в общем (6) "заставит" соответствующие касательные плоскости приблизиться к желаемым положениям.

  1. Алгоритм

Приведем ниже описание алгоритма для достижения нужной деформации (см. также [2]). Чтобы вычислить новые расположения контрольных точек, мы должны выполнить следующие основные шаги:

1) Составить вектор из (N+1) контрольных точек 05-11-2015 12-02-56 для начальной поверхности.

2) Отобрать (d+1) точку выборки, чтобы сохранить положения граничных кривых 05-11-2015 12-03-12. Будем называть эти точки “G0 точки выборки”.

3) Отобрать (g+1) точку выборки, чтобы сохранить непрерывность 05-11-2015 12-03-57. Будем называть эти точки “G1 точки выборки”. В нашем исполнении, множество G1 точек выборки является подмножеством G0 точек выборки.

4) Вычислим “желаемую” касательную плоскость в каждой G1 точке выборки и получим 2(g+1) соответствующих проекций касательных векторов к начальной поверхности на касательную плоскость: 05-11-2015 12-04-19. Другими словами, получаем пару трехмерных векторов для каждой G1 точки выборки.

5) Вычислим два вектора, каждый из которых состоит из (g+1) константы: 05-11-2015 12-04-45.

6) Вычислим (N+1)-вектор 05-11-2015 12-04-59 для каждой G0 точки выборки используя базисные функции B-сплайна.

7) Вычислим пару (N+1)-векторов 05-11-2015 12-05-12 для каждой G1 точки выборки используя базисные функции B-сплайна и их производные.

8) Вычислим три (N+1)×(N+1) матрицы: 05-11-2015 12-05-29.

9) Вычислим (N+1)×(N+1) матрицу 05-11-2015 12-05-40.

10) Нам больше не нужны матрицы 05-11-2015 12-05-53 и мы можем освободить соответствующую память.

11) Вычислим три вектора, каждый из которых состоит из (N+1) константы: 05-11-2015 12-06-05.

12) Нам больше не нужна матрица 05-11-2015 12-06-13 и вектор контрольных точек 05-11-2015 12-06-22, и мы можем освободить соответствующую память.

13) Вычислим шесть (N+1)×(g+1) матриц 05-11-2015 12-06-36.

14) Вычислим шесть (g+1)×(N+1) матриц 05-11-2015 12-06-52.

15) Освободим память, выделенную для каждой контрольной точки.

16) Составим матрицу A. Освободим соответствующую память.

17) Составим вектор констант правой части B.

18) Решим систему уравнений, используя методы для систем с разреженными матрицами.

19) Получим множество новых контрольных точек.

20) Построим новую поверхность.

  1. Благодарности
Я очень благодарен всем сотрудникам компании "Элизиум" (Elysium Co., Ltd, Japan, Hamamatsu city), особенно T.Kodera, A.Soma, T.Tsuduki за их постоянную поддержку.

Литература

  1. S. V. Fomin, I. M. Gelfand “Calculus of Variations” // Dover Publications, 2000
  2. Berzin D.V. "Surface deformation with geometric constraints" // Международный научно-исследовательский журнал = Research Journal of International Studies, №8 (15) 2013, part 1, p.6

References

  1. S. V. Fomin, I. M. Gelfand “Calculus of Variations” // Dover Publications, 2000
  2. Berzin D.V. "Surface deformation with geometric constraints" // Research Journal of International Studies, №8 (15) 2013, part 1, p.6