Модели трехмерных объектов. Требования, предъявляемые к моделям.
Геометрическая модель является машинным представлением формы и размера
Виды
- Каркасная (не даёт представления о наличии отверстий)
- Поверхностная (не даёт представления, по какую сторону материал, а по какую пустота)
- Объёмная
Требования - Модель не должна противоречить исходному объекту
- Можель должна допускать возможность конструирования тела целиком
- Модель должна допускать вычисление геометрических характеристик тела
- Модель должна позволять проводить расчеты: кинематические, сопротивления
Свойства
- Однородность (тело заполнено изнутри)
- Конечность (каждое тело занимает конечный объём)
- Жёсткость (сплошное тело сохраняет форму независимо от положения)
Требования к ПО
- Согласованность операций (любые операции над сплошными телами должны приводить к сплошным телам)
- Возможность описания (любое тело должно представляться в машинном виде)
- Непротиворечивость информации (любая точка принадлежит 1 телу, для любой точки можно сказать, принадлежит ли она телу)
- Компактность модели
- Открытость модели (разрабатываемая модель должна иметь применении при работе с разными алгоритмами)
20. Операции преобразования в трехмерном пространстве. Матрицы преобразований.
Трехмерное отсечение. Виды отсекателей. Вычисление кодов концов отрезка для каждого типа отсекателей. Алгоритм отсечения отрезков средней точкой.
|
|
Трёхмерный алгоритм аналогичен двумерному, но к координатам добавляется третья компонента. Код видимости задаётся 6 битами. Если отсекатель – усечённая пирамида, то для составления кода используются пробные функции
Отсечение отрезков в трехмерном пространстве. Трехмерный алгоритм Кируса Бека.
В трёхмерном варианте отсекатель может быть произольным выпуклым телом. Алгоритм аналогичен двумерному, только векторы имеют 3 компонены. На каждом шаге ищем точку пересечения с i-ой гранью.
23. Определение факта выпуклости трехмерных тел. Разбиение тела на выпуклые многогранники.
Алгоритм плавающего горизонта.
Для хранения максимальных значений y при каждом значении x используется массив, длина которого равна числу различимых точек (разрешению) по оси x в пространстве изображения. Значения, хранящиеся в этом массиве, представляют собой текущие значения "горизонта". Поэтому по мере рисования каждой очередной кривой этот горизонт "всплывает". Фактически этот алгоритм удаления невидимых линий работает каждый раз с одной линией.
Алгоритм работает очень хорошо до тех пор, пока какая-нибудь очередная кривая не окажется ниже самой первой из кривых. Нижняя сторона поверхности делается видимой, если модифицировать этот алгоритм, включив в него нижний горизонт, который опускается вниз по ходу работы алгоритма. Это реализуется при помощи второго массива, длина которого равна числу различимых точек по оси x в пространстве изображения. Этот массив содержит наименьшие значения y для каждого значения x.
|
|
Проблема с зазубренностью боковых ребер решается включением в массивы верхнего и нижнего горизонтов ординат, соответствующих штриховым линиям. Это можно выполнить эффективно, создав ложные боковые ребра.
Суть алгоритма
- обработать левое боковое ребро
- для каждой точки очередной кривой проверить условие видимости 3. если видимость изменилась, вычислить точку пересечения
- изобразить видимую часть кривой
- заполнить массивы горизонтов
- обработать правое боковое ребро
Обработка боковых рёбер Левое: если Pk – первая точка первой кривой , то запоминаем её в качестве предыдущей Pk-1, если на не первой – соединяем K и K-1 и запоминаем текущую как K-1. Аналогично правое. В массивы верхнего и нижнего горизонтов заносим ординаты бокового ребра.
|
|
Задача удаления невидимых линий и поверхностей. Ее значение в машинной графике. Классификация алгоритмов по способу выбора системы координат (объектное пространство, пространство изображений). Задача удаления невидимых линий в объектном пространстве.
Задача удаления невидимых линий и поверхностей является одной из наиболее сложных в машинной графике. Осложняется тем, что необходимо учитывать положение наблюдателя. Алгоритмы удаления невидимых линий и поверхностей служат для определения линий ребер, поверхностей или объемов, которые видимы или невидимы для наблюдателя, находящегося в заданной точке пространства.
Единого и наилучшего способа решения задачи нет. Возникло множество алгоритмов, многие ориентированы на специализированные приложения. Все алгоритмы включают в себя сортировку. Главная – сортировка по расстоянию от точки наблюдения до тела-поверхности-ребра-точки. Так же есть сортировка по загораживанию тел друг другом. Эффективность алгоритмов в большой степени зависит от эффективности алгоритма сортировки.
Существует связь между скоростью работы алгоритма и детальностью его результата – ни один алгоритм не может достигнуть хороших показателей одновременно. Алгоритмы делятся на:
|
|
- Работающие в объектном пространстве (мировая ск, высокая точность). Сложность ~N2
- Работающие в пространстве изображений (ск связана с дисплеем, точность ограничена разрешающей способностью дисплея). Сложность ~N*M
N – количество объектов, M – количество пикселей. N2<N*M, но алгоритмы, работающие в пространстве изображений могут быть эффективнее в силу свойства когерентности при растровой реализации (близко расположенные пиксели чаще обладают одинаковыми свойствами).
Дата добавления: 2019-01-14; просмотров: 382; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!