Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Федорков Е.Д., Кольцов А.С. Геометрическое моделирование.doc
Скачиваний:
172
Добавлен:
02.05.2014
Размер:
2.73 Mб
Скачать

9. Преобразование моделей описания поверхности

Рассмотрим, как можно выполнить преобразование моделей описания поверхности. Сделаем это на примере преобразования неравномерной сетки в равномерную. Задачу можно сформулировать так: поверхность описана в виде точечных значений, изолиний и площадных изообластей. Необходимо построить равномерную сетку так, чтобы она представляла эту поверхность с определенной точностью.

Для решения данной задачи можно использовать алгоритм, предложенный автором этой книги и реализованный в геоинформационной системе ГИС "ОКО" в 1996 году.

Сначала рассмотрим аспекты точности алгоритма и ограничения для его использования.

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

Необходимо также учесть дискретность представления чисел в компьютере при хранении в памяти значений в узлах сетки. В современных цифровых компьютерах числа обычно представляются в форматах с разрядностью, кратной 8 (байт). Однобайтовые целые числа дают 256 градаций, двухбайтовые — 65 536 и так далее. Можно также использовать и форматы с плавающей точкой.

Выбираем формат чисел для кодирования пикселов растра. Одной из основных особенностей предложенного алгоритма является то, что число 0 для каждого пиксела указывает на неопределенное значение высоты (пустоты до интерполяции). Это означает, что, например, для однобайтовых пикселов высота имеет не 256, а 255 градаций. Дискретность значений высоты = диапазон значений /255.

Разумеется, лучше использовать большую разрядность, чем 8 бит. Основное ограничение — объем памяти, необходимый для растра:

П = сх су (байтов на пиксел).

Все это необходимо учитывать для построения равномерной сетки поверхности с необходимой точностью.

10. Понятие кубических сплайнов

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

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

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

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

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

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

    • моделирования кривых;

    • аппроксимации данных с помощью кривых;

    • выполнения функциональных аппроксимаций;

    • решения функциональных уравнений.

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

Рассмотрим в начале сплайновую функцию для построения графика функции одной переменной. Пусть на плоскости задана последовательность точек ,, причем. Определим искомую функцию, причем поставим два условия:

  1. Функция должна проходить через все точки: , ;

  2. Функция должна быть дважды непрерывно дифференцируема, то есть иметь непрерывную вторую производную на всем отрезке .

На каждом из отрезков ,, будем искать нашу функцию в виде полинома третьей степени:

.

Рис. 20. Сплайновая функция

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

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

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

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

Одним из способов задания параметрического кубического сплайна является указание координат начальной и конечной точек, а также векторов касательных в них. Такой способ задания называется формой Эрмита. Обозначим концевые точки и, а касательные векторы в нихи. Индексы выбраны таким образом с учетом дальнейшего изложения.

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

, , , . (*)

Перепишем выражение для в векторном виде:

.

Обозначим вектор строку и вектор столбец коэффициентов, тогда.

Из (*) следует, что ,. Для касательных,

,

. Отсюда получаем векторно-матричное уравнение:

.

Эта система решается относительно нахождением обратной матрицы размером.

.

Здесь - эрмитова матрица, - геометрический вектор Эрмита. Подставим выражениедля нахождения:. Аналогично для остальных координат:,.

Выпишем в явном виде формулы для вычисления координат точек сплайна. Так как

, то, умножая справа на, получаем

.

Четыре функции в скобках называются функциями сопряжения.

Форму кривой, заданной в форме Эрмита, легко изменять, если учитывать, что направление вектора касательной задает начальное направление, а модуль вектора касательной задает степень вытянутости кривой в направлении этого вектора, как показано на рис. 21.

Рис. 21. Параметрический сплайн в форме Эрмита

Вытянутость кривой вправо обеспечивается тем, что .

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

Рис. 22. Параметрический сплайн в форме Безье

Переход от формы Эрмита к форме Безье осуществляется преобразованием

, (*)

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

Полезным свойством сплайнов в форме Безье является то, что кривая всегда лежит внутри выпуклой оболочки, образованной четырехугольником. Это свойство можно доказать, пользуясь тем, что в выражении (*) коэффициенты принимают значения от 0 до 1 и их сумма равна единице.

Заметим, что матрица вида

- называется матрицей Безье.