Построение триангуляции плоских областей методом измельчения

Автор: Клячин Алексей Александрович

Журнал: Математическая физика и компьютерное моделирование @mpcm-jvolsu

Рубрика: Математика

Статья в выпуске: 2 (39), 2017 года.

Бесплатный доступ

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

Еще

Триангуляция, треугольник, минимальный угол триангуляции, разбиение области, условие липшица

Короткий адрес: https://sciup.org/14968891

IDR: 14968891   |   DOI: 10.15688/jvolsu1.2017.2.2

Текст научной статьи Построение триангуляции плоских областей методом измельчения

DOI:

Q. Треугольник T j будем называть граничным, если хотя бы две его вершины лежат на границе д Q. Остальные треугольники будем называть внутренними.

Для по с троения расчетной треугольной сетки нужно взять конечное число точек, лежащих в Q, и сформировать на их основе триангуляцию. Существует немалое количество различных алгоритмов решения этой задачи. При этом сложность этих алгоритмов в лучшем случае составляет величину O(mlnm). Существуют и другие способы построения треугольных сеток в ограниченных плоских областях. В качестве примера мы можем привести работы [1] и [10]. Мы также предлагаем несколько иной подход, предусматривающий только один проход по набору вершин. Заключ а ется он в следующем. Вначале мы рассматриваем небольшое количество точек из Q и одним из алгоритмов строим по ним начальную триангуляцию. Для получения более качественной триангуляции мы можем потребовать выполнения, например, условия Делоне или его обобщения (см., например, [4; 11; 12]). Далее построенная триангуляция подвергается процессу измельчения с целью уменьшения мелкости разбиения и, соответственно, повышению точности вычислений на ней. Отметим, что в роли числовой характеристики, отвечающей за качество триангуляции, мы рассматриваем минимальный синус углов треугольников триангуляции. Нужно отметить, что синусы углов треугольника существенно влияют на степень погрешности вычисления функции и ее производных при их приближении кусочно-полиномиальными функциями в этом треугольнике (см. работы [2; 3; 5–9; 13–15]).

Далее будем предполагать, что граница области д^ состоит из конечного числа простых замкнутых кривых. Будем считать, что задана некоторая начальная триангуляция Т = ^ } ^ =1 области Q. Рассмотрим следующий способ измельчения триангуляции с целью получить триангуляцию, которая будет приближать границу области с большей точностью.

Зафиксируем произвольное натуральное число q.

  • 1)    Для каждого внутреннего треугольника Т к исходной триангуляции будем строить разбиение следующим образом. Выберем произвольно вершину треугольника и каждую сторону, выходящую из этой вершины, разобьем дополнительными точками на q равных отрезков. Далее проведем через выделенные точки прямые, параллельные второй стороне, которая также выходит из данной вершины. Если теперь провести прямые, параллельные третьей стороне через полученные точки, то образуется разбиение треугольника Т к на q 2 подобных треугольников (см. рис. 1). При этом величина минимального угла полученной триангуляции совпадает с а ( Т ).

  • 2)    Рассмотрим произвольный треугольник Т к с вершинами А, В и С , у которого сторона АВ является граничной. Тогда вершины А, В Е д Q. Будем предполагать, что АС U СВ С Q. На АС рассмотрим точки С = S oo , S 10 ,..., S q 0 = А, делящие отрезок АС на q равных отрезков. Проведем выходящие из них лучи в сторону треугольника и параллельные стороне СВ: L o , L 1 ,..., L q .

Обозначим через т длину максимального отрезка вида S i 0 M , лежащего в пересечении Q П L i , г = 0, ...,q. Мы будем предполагать, что 0 т <  + ^ . Обозначим через l i отрезок луча L i с началом в точке S i 0 длины т^ Разобьем 1 г на q г одинаковых отрезков точками S i 0 , S i 1 ,..., S i,q - i (см. рис. 2). Образуем для получившихся точек такой набор треугольников. Для г = 0, ...,q 1 получаем AS ij S i,j +1 S i +1 ,j , j = 0, ...,q г 1 и A S ij S i +i ,j - i S i +i ,j , где j = 1, ...,q г - 1.

В итоге, как не трудно видеть, полученный набор треугольников также образует триангуляцию.

Рис. 1. Разбиение треугольника на 9 подобных треугольников ( q = 3 )

Рис. 2. Измельчение для граничного треугольника (q = 3 )

  • 2.    Оценка качества триангуляции

В этом разделе статьи мы будем рассматривать область Q специального вида. Для начала дадим определение криволинейного треугольника (см. рис. 3). Пусть задана произвольная точка О = 0 , у 0 ) на плоскости и два неколлинеарных единичных вектора f = ( , 1 , , 2 ) и f = ( п 1 , П 2 ). Криволинейным треугольником назовем область вида

~_

Т = {М : ОМ = uf + vf, 0 < и < а, 0 < v < А(и)} или вида

  • — _

Т = {М : ОМ = и, + vn, 0 < v < а, 0 < и < A(v)}, где λ — некоторая непрерывная неотрицательная функция, определенная на отрезке [0, а].

Понятно, что достаточно ограничиться первым видом криволинейного треугольника, так как треугольник второго вида приводится к первому заменой f на f, а f

f

f

на , . Вершинами криволинейного треугольника назовем точки О, М 1 = О + а, и М 2 = о + л <о)п.

Рис. 3. Криволинейный треугольник

Пусть область Q представляет собой объединение

Q =

(У") ■• т)

где Т к — обычные (прямолинейные) треугольники, а Т к — криволинейные треугольники. Будем предполагать, что все эти треугольники не пересекаются по внутренним точкам. Также мы будем считать, что вершины каждого треугольника (криволинейного треугольника) могут принадлежать другому треугольнику, прямолинейному или криволинейному, только в качестве его вершины (рис. 4).

Рис. 4. Область, как объединение треугольников

Далее дадим нижнюю оценку минимального угла треугольников, получающихся описанным выше методом. Ясно, что при измельчении треугольников Т к углы получающихся новых треугольников будут теми же, так как эти треугольники подобны треугольнику Т к . Поэтому будем оценивать углы при измельчении криволинейных треугольников

Т к . Для начала рассмотрим криволинейный треугольник (индекс к опустим, чтобы не загромождать формулы)

--→

Т = : ОМ = и^ + vq, 0 < и а, 0 v Л (^) } .

Будем предполагать, что найдутся положительные числа L Z такие, что для любых и 1 2 £ [0, а], U 1 < и 2 , выполнены неравенства

Z ( u - U i ) A (u i ) - X(U 2 ) L(U 2 U i )                       (1)

и А (а) = 0. Проведем процедуру измельчения этого треугольника, описанную в предыдущем разделе статьи. Рассмотрим разбиение отрезка [0, а] точками u i = ih, где h = ^ , г = 0,...,q. Зафиксируем i и рассмотрим точки v^ = М^-1 , j = 0,...,q i. Обозначим через A ij точку с координатами ( х^,у^ ), где

Ху = Х о + U i 0 1 + V ij П 1 , У ij = У о +U i O 2 + V ij П 2 .

Отметим, что справедливы следующие неравенства

(q i)Zh A (u i ) (q i)Lh, i = 0, ...,q.

Триангуляция криволинейного треугольника Т состоит из следующих треугольников. Для i = 0,..., q 1 получаем AAyA jj +i A j +ij , j = 0,..., q i 1 и AA ij A i +i ,j _ i A i +i ,j , где j = 1,..., q i 1. Получим оценку снизу синуса углов этих треугольников.

Рассмотрим первый треугольник. Ему в координатах и, v соответствует некоторый треугольник, площадь которого в плоскости (u,v), очевидно, равна

S =

AAfUi) 1 zh 2 .

2(q i) - 2

Тогда, используя переход к декартовым координатам (х,у):

Х = Хо + и01 + vni, у = Уо + и^2 + vn2, площадь S треугольника AAijAi,j+1Ai+1,j будет равна

S = S sin 0 =     ( U i ) sin 0 -Zh 2 sin 0 ,

2(q — i)      - 2         , где 0 — угол между векторами 0 и г|. Далее sin(ZAi+i,j) =

________ 2S ________ | A ij A i+1,j II A i,j+1 A i+1,j I

Воспользуемся следующими неравенствами. Пусть A = ( х а а ),В = в в ) — произвольные точки на плоскости. Пусть (u ^ ,v ^ ), в ,v B ) таковы, что

Х А = Х о + U A 0 1 + V A 4 1 , У А = У 0 + U A 0 2 + V A ^ 2

и

Х в = Х о + и в 0 1 + V B П 1 , У в = У о + и в О 2 + v b П 2 .

Тогда

( х Л - Х в ) 2 + ( у Л - У в ) 2 (1 - | COS 0 | )(( и д - и в ) 2 + ( х Л - Х в ) 2 ),          (3)

(хЛ - Хв)2 + (уЛ - ув)2 < (1 + | cos 0|)((иЛ - ив)2 + (хЛ - Хв)2).         (4)

Поэтому

|а,, а , +„ | 2 (1 + 1 cos 0 | ) р + ( 3^ - ^-^ - 1 у)

и

I a„ +1 A , +l, | 2 (1 + 1 cos е | ) ( л 2 + ( +   '■     - у у) .

Следовательно, sin(ZA,+1,j) >

sin 0

1 + | cos 0 1 ^^ 2 | ( j A ( u « )

KX(u , )/(q -

- ;    )2 v ■

1Ж№)

9 i

-

j^U +l ) ) 2 д i 1

.

Используя условия на функцию A (u), имеем

3 Ни,) 3 A(u,+1) ---- — ----- q - г q - г - 1

3 A(u,) 3 М«г+1) ---- — ----- q - г q - г

A (u , +1 ) ( q - г )( q - г - 1)

Lhy Lhy

< ---- ; |--; <  2Lh

и

+ 1) Л , )     3 Х(и ,+1 )

3 ^ (u , )

3 A ( u i +1 )

+

A (u , )

+

q - г       q

- г - 1

q - г

q - г

q - г

+

3 A ( u i +1 )

( q - г )( q - г - 1)

< 3LЛ.

Таким образом,

• , , л х         sin 0                     ;Л 2

sinlZAji I J > -----.------г ,               „         = v     1,35 ~ 1 + | cos 0| Vл2 + 4L2Л2 Vл2 + 9L2Л2

sin 0                 /

= ------,--------r ,         - ,        =.                                   (5)

1 + | cos 0 | V1 + 4L2v 1 + 9L2

Аналогично имеем

Поэтому,

sin(ZAti) >     s n 0 ,                           ------------=

1 + | cos 0 | ф12 + (г^ -       ) 2 A (u , )/(q - г)

sin 0                 л

1 + | cos 0 | ^ Л 2 + ( Mu t ) - jA C u i +i ) ) 2

. , , . x           sin 0               I

sin(^A) 1 + | cos e |v T+4l 2 '                         (6)

И для третьего угла данного треугольника sin 0                    hA(ui)/(q — г)

1 + I cos 0 | A ( Mi )/(q i) J h 2 + ( (^^ — ^' :± ) 2

Рис. 5. Триангуляция области после измельчения для q = 2

sm( Z A i ±ij ) >

sin 0                   h

1 + | COs 0 | ^ H ? + ( ( 2 ±1M ^ 1 ) - M^ ±1 ) ) 2

Тогда

sin 0           l

sin(    M+1 ) 1 + | cos 0 IV 1 + 9L 2 .                       ()

Аналогичные

неравенства (5)–(7) справедливы и для углов треугольника

AA tj A i +1 ,j _1 A i +1 ,j . На рисунке 5 показан результат измельчения исходной триангуляции.

Обозначим теперь через 0 минимальный угол всех треугольников T k . Далее для каждого треугольника определены соответствующие постоянные I k ,L k . Полагаем

Замечание 1. Условия (1) существенно влияют на качество триангуляции. Убедимся в этом на следующем примере. Пусть fi — круг, ограниченный окружностью ж 2 + у 2 = R 2 . Разобьем его на четыре криволинейных треугольника координатными линиями. Пусть первый из них имеет вид

Т = { (ж, у) : 0 ж R, 0 у VR 2 - ж 2 } .

Ясно, что функция Л (ж) = VR2 ж 2 не удовлетворяет условиям (1). Теперь рассмотрим соответствующее измельчение и самый крайний справа треугольник АА 0 ,ц _ 1 А 1 ,ц _ 1 А 0 ,,? . Не сложно видеть, что

Л о ,, - 1 = ( я1 - 1 , 0 ) , а^ - = ( я1 - 1 ,R ^ 2^) , А о ,, = (R, 0).

Тогда

R/q

sin ( Z A o ,9 - i A i ,9 - i A o ,y ) =

^ 0

.

при q ^ то

Замечание 2. Дадим некоторые пояснения по поводу вычисления величин г г = Л г ). Предположим вначале, что область задана неравенством

F(ж,у) < ° где F(ж, у) — непрерывная функция на плоскости. В таком случае вычисление значений гг, а значит и вершин триангуляции, может быть осуществлено так. Пусть фиксирована точка Аг0, г = 0, ..,q. Рассмотрим функцию

/ (t) = F г о + t n i , у го + ^ Л 2 )

при t Е [0, + то ). Так как точка А г 0 Е fi, то либо /(0) = 0, либо /(0) < 0. Если /(0) = 0, то полагаем г г = 0. Если же /(0) < 0, то, учитывая, что /(t) > 0 при всех достаточно больших t >  0, из непрерывности функции /(t) следует существование такого минимального t * >  0, что /(t * ) = 0. Тогда полагаем г г = t * . Величину t * можно приближенно определить одним из методов численного решения нелинейных уравнений.

Предположим теперь, что граница области дfi задана в виде параметрических уравнений ж = ж(t), у = у(t), t Е [0,Т].                                 (8)

Рассмотрим криволинейный треугольник

--→

Т = {М : ОМ = иЕ, + vq, 0 < и < а, 0 < v < Л(^)}, в котором функция Л(и) задана параметрически уравнениями (8) при t Е [t1,t2] С [0,Т]. Тогда для поиска точки пересечения Lt с дfi надо решить уравнение

(у(t) у о и г Е 2 ) П 1 = (ж(t) ж о и г Е 1 ) П 2 .                       (9)

Учитывая, что x(t i ) = ж о + A (0) n i , y(t i ) = у о + Л (0) п 2 и ^(^ 2 ) = Х о + aU,y(t2) = = у 0 + а^ 2 и непрерывность функций x(t),y(t), найдется t * Е [t 1 ,t 2 ] такое, при котором выполняется равенство (9). Тогда полагаем

T = У(ж ^ о - x(t * )) 2 - (ую - y(t * ) 2 .

Список литературы Построение триангуляции плоских областей методом измельчения

  • Алейников, С. М. Алгоритм генерации сетки в методе граничных элементов для плоских областей/С. М. Алейников, А. А. Седаев//Математическое моделирование. -1995. -№ 7 (7). -C. 81-93.
  • Байдакова, Н. В. Влияние гладкости на погрешность аппроксимации производных при локальной интерполяции на триангуляциях/Н. В. Байдакова//Тр. ИММ УрО РАН. -2011. -Т. 17, № 3. -C. 83-97.
  • Байдакова, Н. В. Новые оценки величин погрешности аппроксимации производных при интерполяции функции многочленами третьей степени на треугольнике/Н. В. Байдакова//Изв. Сарат. ун-та. Нов. сер. Сер. Математика. Механика. Информатика. -2013. -Т. 13:1, № 2. -C. 15-19.
  • Клячин, В. А. Алгоритм триангуляции, основанный на условии пустого выпуклого множества/В. А. Клячин//Вестник Волгоградского государственного университета. Серия 1, Математика. Физика. -2015. -Т. 28, № 3. -C. 27-33.
  • Клячин, В. А. Коэффициент изопериметричности симплекса в задаче аппроксимации производных/В. А. Клячин, Д. В. Шуркаева//Изв. Сарат. ун-та. Нов. сер. Сер. Математика. Механика. Информатика. -2015. -Т. 15, № 2. -C. 151-160.
  • Клячин, В. А. Триангуляция Делоне многомерных поверхностей/В. А. Клячин, А. А. Широкий//Вестн. СамГУ. Естественнонауч. сер. -2010. -Т. 78, № 4. -C. 51-55.
  • Клячин, В. А. Триангуляция Делоне многомерных поверхностей и ее аппроксимационные свойства/В. А. Клячин, А. А. Широкий//Изв. вузов. Математика. -2012. -№ 1. -C. 31-39.
  • Латыпова, Н. В. Погрешность кусочно-кубической интерполяции на треугольнике/Н. В. Латыпова//Вестн. Удмурт. ун-та. Математика. -2003. -C. 3-10.
  • Матвеева, Ю. В. Об эрмитовой интерполяции многочленами третьей степени на треугольнике с использованием смешанных производных/Ю. В. Матвеева//Изв. Сарат. ун-та. Сер. Математика. Механика. Информатика. -2007. -Т. 7, № 1. -C. 23-27.
  • Немировский, Ю. В. Автоматизированная триангуляция многосвязных областей со сгущением и разрежением узлов/Ю. В. Немировский, С. Ф. Пятаев//Вычислительные технологии. -2000. -№ 5 (2). -C. 82-91.
  • Скворцов, А. В. Алгоритмы построения триангуляции с ограничениями/А. В. Скворцов//Вычислительные методы и программирование. -2002. -№ 3. -C. 82-92.
  • Скворцов, А. В. Обзор алгоритмов построения триангуляции Делоне/А. В. Скворцов//Вычислительные методы и программирование. -2002. -№ 3. -C. 14-39.
  • Субботин, Ю. Н. Зависимость оценок аппроксимации интерполяционными полиномами пятой степени от геометрических характеристик треугольника/Ю. Н. Субботин//Тр. Ин-та математики и механики УрО РАН. -1992. -Т. 2. -C. 110-119.
  • Субботин, Ю. Н. Зависимость оценок многомерной кусочно-полиномиальной аппроксимации от геометрических характеристик триангуляции/Ю. Н. Субботин//Тр. МИАН. -1989. -Т. 189. -C. 117-137.
  • Babuska, I. On the angle condition in the finite element method/I. Babuska, A. K. Aziz//SIAM J. Numer. Anal. -1976. -Vol. 13, № 2. -P. 214-226.
Еще
Статья научная