- •Введение
- •1. Модели. Элементы моделей
- •2. Построение кривых
- •3. Построение поверхностей
- •4. Типы моделей
- •5. Полигональные сетки
- •6. Описание геометрических форм
- •6.1. Описание поверхностей. Параметрическое описание поверхностей
- •Эллипсоид
- •Xacoscos,
- •Общие случаи нормали к поверхности
- •Описание поверхностей неявными функциями
- •6.2. Поточечное описание поверхностей.
- •6.3. Синтез изображений методом обратной трассировки лучей
- •Система координат, применяемая в методе обратной трассировки лучей
- •6.4. Способы представления моделей геометрических объектов
- •6.5. Кривые и поверхности nurbs
- •7. Структура твердотельной модели
- •8. Синтез твердого тела по процедурному описанию
- •8.1 Векторная полигональная модель
- •8.2. Воксельная модель
- •8.3. Равномерная сетка
- •8.4. Неравномерная сетка. Изолинии
- •9. Преобразование моделей описания поверхности
- •10. Понятие кубических сплайнов
- •11. Интерполяция b-сплайнами
- •12. Выпуклые оболочки
- •Основные понятия и идеи
- •12.1. Метод обхода грэхема
- •12.2. Обход методом джарвиса
- •13. Геометрмческое моделирование криволинейных объек тов с использованием барицентрических координат
- •13.1. Линейная интерполяция и барицентрические координаты
- •13.1.1. Барицентрические координаты на прямой
- •13.1.2. Барицентрические координаты на плоскости
- •13.1.3. Барицентрические координаты в пространстве
- •13.2. Метод определения точек, инцидентных треугольной порции поверхности, по заданным локальным координатам
- •13.2.1. Алгоритм задания квадратичной параболы
- •13.2.2. Анализ алгоритма кастельжо для произвольной кривой
- •13.2.3. Обобщённый алгоритм для треугольной порции поверхности
- •13.3. Аппроксимация поверхностей обобщенными полиномами бернштейна
- •13.3.1. Свойства треугольной порции поверхности безье
- •13.3.2. Свойства обобщенных полиномов бернштейна
- •14. Особенности аппроксимации обводов параметрическими полиномами в форме бернштейна
- •14.1. Методы полиномиальной аппроксимации одномерных обводов
- •14.1.1. Общая постановка задачи аппроксимации дискретного набора данных
- •14.1.2. Аппроксимация обводов параметрическими полиномами
- •14.1.3. Аппроксимация обводов параметрическими полиномами бернштейна
- •14.2. Геометрические свойства производных полиномов бернштейна
- •14.2.1. Вычисление первой производной
- •14.2.2. Вычисление производных высшего порядка
- •14.3. Методы полиномиальной аппроксимации двумерных обводов
- •Метод тензорного произведения
- •Каркасный метод
- •14.3.3. Метод булевой суммы (поверхности Кунса)
- •15. Стандарты в графических системах сапр и современные растровые графические файлы
- •15.1. Графические системы класса 2d
- •15.2. Графические системы класса 3d
- •15.3. Стандарты обмена данными
- •16. Системы подготовки и выпуска конструкторско-технологической документации. Организация конструкторской подготовки производства
- •17. Графические диалоговые системы
- •17.1. Краткий обзор зарубежных cad-систем
- •Технологические модули в pt/Products. Интеграция процессов проектирования и изготовления
- •Работа со стандартными библиотеками посредством pt/LibraryAccess и pt/Library
- •17.2. Отечественные разработки
- •Компас 5
- •T-flex cad
- •Заключение
- •394026 Воронеж, Московский просп., 14
Основные понятия и идеи
Понятие выпуклой оболочки множества точек Sявляется естественным и простым. В соответствии с определением —это наименьшее выпуклое множество, содержащее S.Чтобы наглядно представить это понятие в случае, когдаS —конечное множество точек на плоскости, предположим, что это множество охвачено большой растянутой резиновой лентой. Когда лента освобождается, то она принимает форму выпуклой оболочки.
Предметом этой лекции является построение выпуклой оболочки на плоскости. Эта задача, как правило, ставится следующим образом. Задано множество S, содержащееNточек, требуется построить их выпуклую оболочку. Вашему вниманию будут представлены некоторые методы, позволяющие решить эту задачу.
Ещё одним понятием, которое нам понадобится, является понятие крайней точки. Точка выпуклого множества Sназывается крайней, если не существует пары точекa,bSтаких, чтоpлежит на открытом отрезкеab. МножествоEкрайних точекSв точности совпадает с множеством вершин выпуклой оболочкиS. Используя это свойство, мы приходим к основной идее алгоритма поиска:
Определить крайние точки.
Упорядочить эти точки так, чтобы они образовывали выпуклый многоугольник.
Необходима теорема, которая позволит нам проверять, является ли некоторая точка крайней.
Теорема 1.Точка р не является крайней плоского выпуклого множестваSтолько тогда, когда она лежит в некотором треугольнике, вершинами которого являются точки из S,но сама она не является вершиной этого треугольника (рис. 23).
Рис. 23. Точка р не является крайней, так как она находится внутри треугольника (p1p2p3)
Эта теорема дает идею для алгоритма удаления точек, не являющихся крайними. Имеется О(N3) треугольников, определяемых Nточками множестваS.Проверка принадлежности точки заданному треугольнику может быть выполнена за некоторое постоянное число операций, так что за время О (N3) можно определить, является ли конкретная точка крайней. Повторение этой процедуры для всех Nточек множестваSпотребует времениO(N4). Хотя наш алгоритм является чрезвычайно неэффективным, он очень прост в идейном плане и показывает, что крайние точки могут быть определены за конечное число шагов.
Мы затратили время О(N4)только на определение крайних точек, которые должны быть как-то упорядочены, чтобы образовать выпуклую оболочку. Смысл этого порядка раскрывается следующими теоремами.
Теорема 3.5.Луч, выходящий из внутренней точки ограниченной выпуклой фигуры F, пересекает границу F в точности в одной точке.
Теорема 3.6.Последовательные вершины выпуклого многоугольника располагаются в порядке, соответствующем изменению угла относительно любой внутренней точки.
Если даны крайние точки некоторого множества, то его выпуклую оболочку можно найти, выбрав точку q,про которую известно, что она является внутренней точкой оболочки, и упорядочив затем крайние точки в соответствии с полярным углом относительно q.Сортировку можно провести заO(NlogN) шагов. Таким образом, мы показали, что задача поиска выпуклой оболочки может быть решена за времяO(N4).