4 ПОСТРОЕНИЯ КРИВОЛИНЕЙНЫХ ПОВЕРХНОСТЕЙ

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

4.1 Сплайн Безье

Кривы́е Безье́ были разработаны в 60-х годах XX века независимо друг от друга Пьером Безье (Bézier) из автомобилестроительной компании «Рено» и Полем де Кастелье (de Casteljau) из компании «Ситроен», где применялись для проектирования кузовов автомобилей. Впервые кривые были представлены широкой публике в 1962 году французским инженером Пьером Безье, который, разработав их независимо от де Кастелье, использовал их для компьютерного проектирования автомобильных кузовов. Кривые были названы именем Безье, а именем де Кастелье назван разработанный им рекурсивный способ определения кривых (алгоритм де Кастелье). Впоследствии это открытие стало одним из важнейших инструментов систем автоматизированного проектирования и программ компьютерной графики [1].

Кривая Безье — параметрическая кривая, задаваемая выражением

(1.1)

 

(1.2)

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

(1.3)

 
 

где n — степень полинома, i — порядковый номер опорной вершины.

Сплайны Безье бывают:

(1.4)

 
1) линейные кривые - при n = 1 кривая представляет собой отрезок прямой линии, опорные точки P0 и P1 определяют его начало и конец. Кривая задаётся уравнением:

(1.5)

 
2) квадратные кривые Безье (n = 2) задаётся 3-я опорными точками: P0, P1 и P2.

(1.6)

 
3) кубические кривые Безье (n = 3) описывается следующим уравнением:

Четыре опорные точки P0, P1, P2 и P3, заданные в 2-х или 3-мерном пространстве определяют форму кривой [2].

Рисунок 4.1 - Кубическая кривая Безье (n = 3)

Линия, берёт начало из точки P0 направляясь к P1 и заканчивается в точке P3 подходя к ней со стороны P2. То есть кривая не проходит через точки P1 и P2, они используются для указания её направления. Длина отрезка между P0 и P1 определяет, как скоро кривая повернёт к P3.


В матричной форме кубическая кривая Безье записывается следующим образом:

(1.7)

 

где  называется базисной матрицей Безье:

(1.8)

 

Построение кривых.

1) Линейные кривые. Параметр t в функции, описывающей линейный случай кривой Безье, определяет, где именно на расстоянии от P0 до P1 находится B(t). Например, при t = 0,25 значение функции B(t) соответствует четверти расстояния между точками P0 и P1. Параметр t изменяется от 0 до 1, а B(t) описывает отрезок прямой между точками P0 и P1.

Рисунок 4.2 - Линейные кривые

2) Квадратные кривые. Для построения квадратных кривых Безье требуется выделение двух промежуточных точек Q0 и Q1 из условия, чтобы параметр t изменялся от 0 до 1:

Точка Q0 изменяется от P0 до P1 и описывает линейную кривую Безье.

Точка Q1 изменяется от P1 до P2 и также описывает линейную кривую Безье.

Точка B0 изменяется от Q0 до Q1 и описывает квадратную кривую Безье.

Рисунок 4.3 - Квадратные кривые

3) Кривые высших степеней. Для построения кривых высших порядков соответственно требуется и больше промежуточных точек. Для кубической кривой это промежуточные точки Q0, Q1 и Q2, описывающие линейные кривые, а также точки R0 и R1, которые описывают квадратные кривые:

Рисунок 4.4 - Кривые высших степеней

Для кривых четвертой степени это будут точки Q0, Q1, Q2 и Q3, описывающие линейные кривые, R0, R1 и R2, которые описывают квадратные кривые, а также точки S0 и S1, описывающие кубические кривые Безье:

Рисунок 4.5 - Кривые четвертой степени

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

Наибольшее значение имеют кубические кривые Безье [1]. Кривые высших степеней при обработке требуют большего объёма вычислений и для практических целей используются реже. Для построения сложных по форме линий отдельные кривые Безье могут быть последовательно соединены друг с другом в сплайн Безье. Для того чтобы обеспечить гладкость линии в месте соединения двух кривых, смежные опорные точки обеих кривых должны лежать на одной линии [4]. Существует три программного метода построения:

a)         public void DrawBezier(Pen, Point, Point, Point, Point);

b)         public void DrawBezier(Pen, PointF, PointF, PointF, PointF);

c)         public void DrawBezier(Pen, float, float, float, float, float, float, float, float);

Рисунок 4.6 - Программная реализация

4.2 Кубические сплайны

В отличие от только что описанных кривых линий Безье, линии кубического сплайна (cardinal spline) проходит через все заданные точки [3]. Построение осуществляется по шагам приведенным ниже: запишем для удобства Si(x) в виде:

(1.9)

 

(2.0)

 
тогда

.

(2.1)

 
Для выполнения условия непрерывности

(2.2)

 
Отсюда получаем формулы для вычисления коэффициентов сплайна:

(2.3)

 

(2.4)

 

Рисунок 4.1 - Пример кубического сплайна

(2.5)

 

Если учесть, что c0 = cn = 0, то вычисление с можно провести с помощью метода прогонки для трехдиагональной матрицы. Существует два программного метода построения кубических сплайнов: метод DrawCurve и DrawClosedCurve [3]. Первый из этих методов рисует незамкнутую кривую линию (открытый сплайн), а второй — замкнутую (закрытый сплайн).

a)         public void DrawCurve(Pen, Point[]);

b)         public void DrawCurve(Pen, PointF[]);

Рисунок 4.2 - Пример закрытого сплайна


ВЫВОДЫ

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

1) Что касается выбора библиотеки визуализации, то можно остановиться на GDI+, поскольку две остальные предназначены для выполнения куда белее сложных задач, к примеру, написания компьютерных игр, или каких либо других сложных графических комплексов. Ещё одним аргументом GDI+, является, проста в использовании, и реализации;

2) Проанализировав языки высоко уровня можно сказать что язык С# наиболее подходит для выполнения нашей задачи, так как он обладает высоким быстродействием, простотой написания кода, возможностью подключения всех трёх библиотек визуализации;

3) C# решает проблему построения криволинейных поверхностей, используя два вида сплайнов: Безье и кубические;

4) Что касается выбора типа сплайнов, то я остановился на сплайнах Безье, аргументируя это тем, что они оба выполняют одну и ту же функцию, но входные данные различны по сложности, для построения сплайнов Безье необходимы четыре значения, а для кубических – набор точек прохождения всей поверхности.


СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1.         Лебедев С. А., Мельников В. А. Общее описание методов раскроя. М., 1999;

2.         Глушкова В.М. Кройка и Шитьё. М., 1995;

3.         Юрьев А.А. Системы визуального моделирования. Д.,2005

4.         Шрус О.В. Калмыга В.Г. Основы языков программирования. М., 2002

5.         Краинберг А. Управляемый DirectX, 856с., том 2.

6.         SiliconGraphics Help 3.1 - “OpenGL”. 1250c.


Информация о работе «Разработка подсистемы визуализации моделей и их модификации»
Раздел: Информатика, программирование
Количество знаков с пробелами: 41796
Количество таблиц: 0
Количество изображений: 8

Похожие работы

Скачать
123884
4
0

... удобным и понятным как для специалиста-проектировщика, так и для любого пользователя САПР. Основные средства взаимодействия человека и машина - это различные диалоговые системы. САПР трубчатых реакторов для производства малеинового ангидрида использует следующие типы диалога: 1) диалог типа "меню". Данный тип меню показан на рисунке 4. На начальном этапе работы САПР в подсистеме ввода и ...

Скачать
103046
12
35

... ресурсы и на последнем этапе проведена оценка эффективности прототипа ИС, которая показала, что внедрение проекта целесообразно. Заключение Целью дипломного проекта являлась разработка подсистемы учета гематологических анализов для КДЛ ГБСМП-2 г. Ростова. Первым этапом дипломного проекта являлась определение цели и задач дипломного проекта. Был проведен анализ существующих систем. В первом ...

Скачать
118569
6
11

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

Скачать
146599
8
2

... , удовлетворяющее потребностям организации, регламентировать процесс перехода на новую систему электронного документооборота и оперативного управления деятельностью компании. ГЛАВА 3. ПРЕДЛОЖЕНИЯ ПО СОВЕРШЕНСТВОВАНИЮ ДЕЯТЕЛЬНОСТИ ОГУ «БЕЛИФ» НА ОСНОВЕ ТЕХНОЛОГИЙ ИНФОРМАЦИОННОГО МЕНЕДЖМЕНТА 3.1 Выбор системы оперативного управления деятельностью на основе анализа российских и зарубежных ...

0 комментариев


Наверх