Научная статья на тему 'Возможность использования сплайн-поверхности для построения поверхностей по результатам съемок'

Возможность использования сплайн-поверхности для построения поверхностей по результатам съемок Текст научной статьи по специальности «Математика»

CC BY
640
228
i Надоели баннеры? Вы всегда можете отключить рекламу.
Журнал
Записки Горного института
Scopus
ВАК
ESCI
GeoRef
Область наук
Ключевые слова
СПЛАЙН-ПОВЕРХНОСТЬ / НЕЛИНЕЙНЫЕ УРАВНЕНИЯ

Аннотация научной статьи по математике, автор научной работы — Нестеренко Е.А.

Приводятся различные способы построения поверхностей: триангуляция Делоне, поверхность Безье, NURBS-поверхность. Изучается возможность использования сплайн-поверхности для интерполяции данных, полученных в результате лазерно-сканирующих или тахеометрических съемок. Для этого для конкретного набора точек в программе MathCad была рассчитана нелинейная функция, описывающая двумерную сплайн-поверхность.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Нестеренко Е.А.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Возможность использования сплайн-поверхности для построения поверхностей по результатам съемок»

УДК 528.7;629.78;630.52:587/588

Е.А.НЕСТЕРЕНКО, канд. техн. наук, ассистент, eanes@yandex.ru Национальный минерально-сырьевой университет «Горный», Санкт-Петербург

E.A.NESTERENKO, PhD in eng. sc., assistant lecturer, eanes@yandex.ru National Mineral Resources University (Mining University), Saint Petersburg

ВОЗМОЖНОСТЬ ИСПОЛЬЗОВАНИЯ СПЛАЙН-ПОВЕРХНОСТИ ДЛЯ ПОСТРОЕНИЯ ПОВЕРХНОСТЕЙ ПО РЕЗУЛЬТАТАМ

СЪЕМОК

Приводятся различные способы построения поверхностей: триангуляция Делоне, поверхность Безье, NURBS-поверхность. Изучается возможность использования сплайн-поверхности для интерполяции данных, полученных в результате лазерно-сканирующих или тахеометрических съемок. Для этого для конкретного набора точек в программе MathCad была рассчитана нелинейная функция, описывающая двумерную сплайн-поверхность.

Ключевые слова: сплайн-поверхность, нелинейные уравнения.

POSSIBILITY OF USING SPLINE SURFACES FOR SURFACE PLOTTING BY RESULTS OF SURVEYING

Different methods of surface plotting expound in this article. Possibility of using spline surfaces for surface plotting by results of laser scanning and stadia surveying is studying. That end for defined number of points by MathCad software the curvilinear function that described two-dimensional spline surfaces was calculated.

Key wordy spline surfaces, curvilinear functions.

Практически во всех современных программах (GKModeller, Micromine,Trimble Geomatic Office, RiscanPro, Cyclone-Model, RapidForm, Microstation и т.д.), работающих с результатами съемки, выраженными в наборе точек с тремя координатами (результаты тахеометрической и лазерно-сканирующей съемки), присутствует функция построения поверхности на основании этих данных с помощью триангуляции Делоне. Как известно, триангуляцией называется граф, все внутренние области которого являются треугольниками, причем выпуклой триангуляцией называется такая, для которой минимальный многоугольник, охватывающий все треугольники, будет выпуклым. Говорят, что триангуляция удовлетворяет условию Делоне, если внутрь окружности, описанной

вокруг любого построенного треугольника, не попадает ни одна из заданных точек триангуляции (рис.1).

Известно значительное количество различных алгоритмов построения триангуляции Делоне [3]. В целом из всего множества

Рис.1. Пример триангуляции Делоне

P

Рис.2. Кривая Безье

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

Различные структуры данных, состоящие из объектов триангуляции (узлов, ребер и треугольников), предоставляющие построение триангуляции Делоне, занимают от 40 до 90 байт компьютерной памяти (при 8-байтовом представлении координат).

Из всего сказанного можно сделать вывод о удобстве использования данного способа построения поверхности:

- использование в построении непосредственно реально существующих точек;

- простота алгоритмов построения (и как следствие, высокая скорость процесса);

- сравнительно небольшой размер файла (увеличение быстродействия программного обеспечения);

- возможность использования переменной плотности исходных точек в зависимости от изменений рельефа (эффективная и точная модель поверхности).

В то же время более 30 лет назад был разработан математический аппарат, позволяющий точно представить поверхность произвольной формы. Во-первых, это поверхности Безье. Пьер Безье, инженер автомобильной компании «Renault» в 60-х годах прошлого столетия разработал на основе эрмитовых кривых конструктивно задаваемую кривую, форму которой можно контро-

лировать в промежуточных, так называемых контрольных, точках, и использовал их для компьютерного проектирования автомобильных кузовов. Кривая Безье (Bezier curve) всегда выходит из первой контрольной точки, касаясь первого отрезка ломаной, соединяющей все контрольные точки, и заканчивается в последней контрольной точке, касаясь последнего отрезка. При этом любая точка кривой всегда остается внутри выпуклого замыкания множества контрольных точек (рис.2) [4].

Во-вторых, те же результаты, независимо от Безье, были получены Полем де Кастельжо, инженером компании «Сйгоеп», который разработал рекурсивный способ определения кривых, названный его именем (алгоритм де Кастельжо). Кривая Безье -параметрическая кривая, задаваемая выражением

B(t) = Ер&„(t), о<t< 1,

(1)

где pi, г е 1: п - опорные вершины в пространстве кривой, называемые полюсами; Ьг п (£) - базисные полиномы Бернштейна,

Г n Л

bn (t) = . f (1 - t)

i e 1: n .

Vi У

(2)

Отрезки, соединяющие полюсы, называются характеристическим многоугольником.

В связи с тем, что в уравнение кривой входит вычисление факториалов, вычисление точек кривой является нерациональным.

Алгоритм построения кривой Безье следующий: на каждом шаге параметр £ принимает значение на отрезке [0,1]. Стороны характеристического многоугольника разбиваются точкой в отношении £ Затем полученные точки соединяются отрезками, каждый из которых также разбивается точкой в отношении и так до тех пор, пока не получим единственную точку, которая принадлежит кривой Безье.

Например, рассмотрим построение точки кривой второго порядка, заданной характеристическим многоугольником р0, р1, р2 (рис.3). Возьмем некоторое произвольное значение £ из промежутка [0,1]. Стороны

3

1=0

n—i

Рис.3 Алгоритм построения кривой Безье

разбиваются в отношении t, в результате чего получаются точки а1, а2, а3. Отрезки а^2, а2а3 также делятся в отношении t, получаются точки Ь1, Ь2. Отрезок Ь1Ь2 делится в отношении t, получается точка c1, которая лежит на искомой кривой.

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

0 о

Рис.4. Исходные вершины

Рис.5. Искомая поверхность

которая задается таким полиномом, называется поверхностью Безье на треугольнике.

Алгоритм построения поверхности Безье: строятся кривые Безье в м-направлении, полученные точки рассматриваются как полюсы для построения кривых Безье в v-направлении, точки которых принадлежат поверхности Безье. На рис.4 изображены исходные ломаные; на рис.5 - результат последовательных шагов построения характеристических треугольников (subdivision) в м-направлении и v-направлении [2].

Кривые и поверхности Безье имеют два свойства, существенно ограничивающих область применения: с их помощью нельзя точно представить конические сечения (например, дугу окружности), их алгебраическая степень растет вместе с числом контрольных точек, что весьма затрудняет численные расчеты.

Способ борьбы с алгебраической степенью сложной кривой известен математикам давно: достаточно построить кривую, состоящую из гладко сопряженных сегментов, каждый из которых имеет ограниченную алгебраическую степень. Такие кривые называются сплайнами. B-сплайны являются обобщением кривых и поверхностей Бе-зье: они позволяют аналогичным образом задавать форму кривой с помощью контрольных точек, но алгебраическая степень B-сплайна от числа контрольных точек не зависит.

Уравнение B-сплайна имеет вид, аналогичный кривой Безье, но сопрягающие функции не являются многочленами Берн-штейна, а определяются рекурсивным образом в зависимости от значения параметра. Область задания параметра B-сплайна разбита на узлы (knots), которые соответствуют точкам сопряжения алгебраических кривых заданной степени.

Модели, созданные на основе неоднородных рациональных сплайнов Безье (NonUniform Rational B-Spline или NURBS), могут состоять как из единой поверхности, так и из набора кусков (patches), соединенных друг с другом подобно лоскутному одеялу. Но в любом случае это гарантированно гладкая поверхность.

Форма созданной поверхности определяется и контролируется изопараметриче-скими кривыми, форму которых, в свою очередь, определяют управляющие вершины. Таким образом, форма поверхности редактируется посредством манипуляции управляющими вершинами.

Кривые и поверхности NURBS имеют ясную геометрическую интерпретацию, которая особенно полезна для дизайнеров, имеющих хорошие знания геометрии. NURBS обладают богатым набором инструментов (вставка / удаление / изменение узла, повышение степени, расщепление), которые могут быть использованы при создании и анализе этих объектов. NURBS являются инвариантом операций масштабирования, вращения, трансляции, обрезания, построения параллельных и перспективных проекций [4].

Среди задач приближения функций важное место занимают задачи восполнения функции по исходным данным, заданным на конечном множестве точек.

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

Итак, вначале необходимо определить функцию, по которой будет строиться поверхность. Для этого рассмотрим понятие интерполяции.

Пусть функция /(х) известна лишь

в узлах некоторой сетки хг, г = 1,N, т.е.

задана таблицей |хг, /г = /(хг), г = 1, N ], и мы хотим восстановить эту неизвестную функцию. Тогда можно построить некоторую функцию ф(х; а), зависящую

от вектора параметров а = (а1,...,aN ) так, чтобы

ф (хг ; ■■■, aN )= /г , г = 1 N .

Задача построения такой функции ф(х) = /(х) называется задачей интерполирования, а способ подбора параметров а в системе уравнений называют интерполяцией (лагранжевой интерполяцией) [4].

Традиционно рассматривают линейную интерполяцию, когда функция ф(х; а) линейно зависит от параметров, т.е. представлена в виде так называемого обобщенного многочлена

Г \ N

ф(х; а^ aN)= Еакфк(х),

к=1

где ф к (х), к = 1, N - набор некоторых заданных функций.

Для отыскания параметров а решается система линейных уравнений

Еак ф к(Хг ) = / , г = 1, N .

к=1

Очевидно, что подбор удачного вида формульной зависимости ф(х; а) - это искусство, ибо истинное решение задачи неизвестно, но целесообразно выбирать достаточно гладкую функцию ф(х; а), так называемую сплайн-функцию, что на русский язык переводится как «гибкая рейка» или «плавная кривая». Решая данную задачу, по

данным точкам {хк , /к , к = 1, N} как бы проводится интерполирующая кривая ф(х) наименьшей кривизны.

В.О.Ашкеназы в своей работе «Сплайн-поверхности. Основы теории и вычислительные алгоритмы» получил соотношения, которые привели к алгебраическому определению сплайн-функции как кусочно-многочленной функции, удовлетворяющей условиям интерполирования в узлах и «склеиваемой» по условиям непрерывности функции, а также ее производных [1]. В промежутках между каждой парой соседних точек (узлов интерполяции) Х;'-1 и хI функция ф(х) является многочленом третьей степени:

ф(х) = а + ъг (х - х_1)+сг (х - х_1)2 +

+ ¿г (Х - X-1)3, X'-1 < х < хг, г = 2, N.

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

Для произвольно размещенных узлов в многомерной задаче восстановления функции более плодотворным оказывается первоначальный вариационный подход. Мы рассмотрим вытекающие из такого подхода математические основы и вычислительные аспекты интерполяции сплайн-поверхностью [1].

Для вывода уравнения сплайн-поверхности будем рассматривать сплайн-поверхность ф(х,у), основанную на данных интерполяции хг, уг, /г, г = 1, N, как математическую модель упругой тонкой пластинки, изогнутой под воздействием внешних сил, приложенных в точках

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

N 2 2

ф(х,у) = ЕС [(х - х1 )2 + (у - у,)2] X

г=1

X 1п[(х - хг )2 + (у - у, )2] +

+ Ах + Ву + Б. (3)

Коэффициенты С1, С2,..., , А, В, Б неизвестны и должны определяться из уравнений ф(хг, уг) = /г, г = 1, N и = 0,

г=1

N N

Е Сг хг = 0, X Сг уг = 0. Этих N + 3 уравне-

г =1 г =1

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

Для расчета указанных коэффициентов были составлены две матрицы на основании координат 12 реально существующих точек (рис.6) для решения системы линейных уравнений

г1( у1) = С1[( х1 - х1)2 + (у1 - у)2] х

х 1п[( х1 - х1)2 + (у1 - у1)2] + Ах1 + Ву1 + Б;

22 (х2 , у2 ) = С1 [(х2 - х1)2 + (у2 - У1)2] Х

х 1п[(х2 - х1)2 + (у2 - у1)2] +

+ С2[(х2 - х2)2 + (у2 - У2)2] Х х 1п[(х2 - х2)2 + (у2 - у2)2] + Ах2 + Ву2 + Б;

^ (XN , УN ) = CN [(XN - х1)2 + (УN - у1)2] Х х 1п[(XN - х1)2 + (УN - у1)2] + ....

+ CN[(xN - xN)2 + (yN - yN)2] X

X ln[(xN - xn )2 + (yn - yn )2] + axn + Byn + а

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

0 = С1 + С2 + С3 +... + CN;

0 - С Хц С2 Х2 ... CN XN ;

0 = С1У1 + С2 У 2 + ... + CNУN .

В результате получили коэффициенты для уравнения, описывающего сплайн-поверхность, интерполирующую значения данных точек:

X :=

(-113.637^ -112.686 -113.201 -114.012 -113.122 -112.190 -111.762 -112.308 -112.846 -113.821 -114.262 у-114.597/

( -15.311 ^ -15.311 -15.311 -14.639 -15.3100 -16.024 -16.680 -16.632 -16.636 -15.9870 -15.329 V-14.651 у

A := - 0.036 B := - 0.14 D := 10.507

Z :=

Y :=

c :=

( 213.455^ 213.1670 212.636 214.162 213.993 213.752 212.934 211.450 211.966 212.246 213.070 V 213.697у

( 0.479 ^ 0.113 0.177 -0.393 0.236 -0.158 0.154 -1.73 1.634 0.0014 V-0.00417y

Рис.6. Исследуемые точки 0

2000 4000

4000

Рис.7. Искомая интерполирующая поверхность

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

верхности необходимо интерполировать с помощью функции (3) значения большого количества точек, для чего снова решить N + 3 линейных уравнения. Эта задача будет поставлена в дальнейших исследованиях.

ЛИТЕРАТУРА

1. Ашкеназы А.В. Сплайн-поверхности. Основы теории и вычислительные алгоритмы: Учеб. пособие. Тверь: Изд-во Тверского гос. ун-та, 2003. 82 с.

2. Капелюхин И А. Параметризация и визуализация усеченных поверхностей Безье для электронной коммерции: Интернет-ресурс: http: // math. engec. ru / publ. html

3. Скворцов А.В. Триангуляция Делоне и ее применение. Томск: Изд-во Томск. ун-та, 2002. 128 с.

4. Ушаков ДА. NURBS и САПР: 30 лет вместе. Интернет-ресурс: http: // isicad. ru / ru / articles. php? article num = 14924

REFERENCES

1. AshkenazyA.V. Basic theory and computational algorithms: Tutorial. Tver: Pub. house of the Tver State University, 2003. 82 p.

2. Kapelyuhin I A. Parameterization and visualization truncated Bezier surfaces for e-commerce: Internet-resource: http: // math. engec. ru / publ. html

3. SkvortsovA.V. Delaunay triangulation and its application. Tomsk: Pub. house of the Tomsk University, 2002. 128 p.

4. UshakovD.A. NURBS and CAD: 30 years together. Internet-resource: http: // isicad. ru / ru / articles. php? article num = 14924

i Надоели баннеры? Вы всегда можете отключить рекламу.