Курсовая работа
по дисциплине "Компьютерная геометрия и графика"
на тему: Построение трехмерной модели вазы
Содержание
1. Постановка задачи
2. Описание используемых алгоритмов
2.1 Построение перспективной проекции
2.2 Алгоритм удаления невидимых линий и поверхностей
2.3 Алгоритм получения изменений формы и движения объекта
3. Описание программы
3.1 Обобщенная структурная диаграмма программы
3.2 Введенные типы данных и их предназначение
3.3 Введенные основные переменные и их предназначение
3.4 Текстовое описание основных процедур и функций и их блок-схемы
3.5 Алгоритм взаимодействия процедур
4. Тестирование программы
Список литературы Приложениепроекция алгоритм диаграмма переменная
1. Постановка задачи
Целью данной работы является построение трехмерной модели вазы. Моделируемая сцена представляет собой поверхность, образованную полигонами. Координатная модель представляет собой набор координат нескольких окружностей различных радиусов, центром лежащими на вертикальной оси вазы и координаты центра дна вазы.
Для каркасного изображения вазы можно рисовать сетку параллелей и меридианов. Для этого удобно воспользоваться известными формулами параметрического описания. Координаты точек поверхности вазы определяются как функции от двух переменных (параметров) — высоты (h) и долготы (l).
х = R sin l
у = R cos l (1)
z = H h,
где R — радиус соответствующей параллели, l — долгота (от -180° до +180° или от 0° до 360°),h — высота (изменяется от -0,5 до +0,5), Н—высота вазы.
Параллель – это линия, состоящая из точек из точек с постоянной широтой. Меридиан — это линия, представляющая точки с постоянной долготой. В каркасной модели вазы меридианы - это криволинейная линия.
Ваза в данной работе состоит из 30 меридианов и 10 параллелей. Сначала вычисляются мировые координаты вершин стенок вазы. В данной модели их 300. После этого рассчитываются номера вершин полигонов для стенок вазы. Аналогичным образом вычисляются мировые координаты вершины дна вазы и номера полигонов дна вазы.
Далее производится видовое преобразование координат точек плоскостей, то есть выполняется преобразование мировых координат (x, y, z) в экранные координаты (X,Y) с добавлением перспективной проекции.
Для удаления невидимых линий используется Z буфер, в котором сортируются полигоны по удалению от плоскости экрана. Рассчитывается средняя координата Z для каждого полигона и в соответствии с её значением полигоны выводятся на экран, начиная с самых удалённых и заканчивая ближайшими. Тем самым и обеспечивается перекрытие ближними полигонами дальних и отсечение невидимых частей модели.
Для расчёта освещённости полигона рассчитывается координаты вектора нормали к нему и, исходя из направления вектора нормали, задаётся цвет заливки для полигона.
2. Описание используемых алгоритмов
2.1 Построение перспективной проекции
Точки в двухмерном и трехмерном пространствах представляются координатами (X, Y) и (х, у, z) соответственно. При необходимости получения перспективной проекции задается большое количество точек P(x, у, z), принадлежащих объекту, для которых предстоит вычислить координаты точек изображения Р'(Х, Y) на картинке. Для этого нужно только преобразовать координаты точки Р из мировых координат (х, у, z) в экранные координаты (X, Y) ее центральной проекции Р'. Предположим, что экран расположен между объектом и глазом Е. Для каждой точки Р объекта прямая линия РЕ пересекает экран в точке Р'.
Это отображение удобно выполнять в два этапа. Первый этап - видовое преобразованием - точка Р остается на своем месте, но система мировых координат переходит в систему видовых координат. Второй этап - перспективное преобразование. Это точное преобразование точки Р в точку Р' объединенное с переходом из системы трехмерных видовых координат в систему двухмерных экранных координат:
Для выполнения видовых преобразований должны быть заданы точка наблюдения, совпадающая с глазом, и объект. Будет удобно, если начало ее координат располагается где-то вблизи центра объекта, поскольку объект наблюдается в направлении от Е к О. Пусть точка наблюдения Е будет задана в сферических координатах f , q, r по отношению к мировым координатам. То есть мировые координаты (точки Е) могут быть вычислены по формулам:
xe= r sin fcos q)
ye=r sin f sin q(2)
ze= r cos f
Обозначения сферических координат схематически изображены на рисунке 2.
Рисунок 1 - Сферические координаты точки наблюдения Е
Видовое преобразование может быть записано в форме
[хe ye ze 1]=[хw уw zw 1]V, (3)
где V - матрица видового преобразования размерами 4х4.
Матрица V, полученная в процессе видового преобразования, выглядит следующим образом:
(4)
Сейчас можно использовать видовые координаты хe и уe просто игнорируя координату ze для получения ортогональной проекции. Каждая точка Р объекта проецируется в точку Р' проведением прямой линии из точки Р перпендикулярно плоскости, определяемой осями х и у. Эту проекцию можно также считать перспективной картинкой, которая была бы получена при удалении точки наблюдения в бесконечность. Параллельные линии остаются параллельными и на картинке, полученной при ортогональном проецировании.
Теперь для построения перспективной проекции рассмотрим непосредственно перспективное преобразование.
На рисунке 2 выбрана точка Q, видовые координаты которой равны (0, 0, d) для некоторого положительного числа d. Плоскость z = d определяет экран, который будет использоваться следующим образом. Экран — это плоскость, проходящая через точку Q и перпендикулярная оси z. Экранные координаты определяются привязкой начала к точке Q, а оси Х и Y имеют такие же направления, как оси х и у соответственно. Для каждой точки объекта Р точка изображения Р' определяется как точка пересечения прямой линии РЕ и экрана. Чтобы упростить рисунок, будем считать, что точка Р имеет нулевую у-координату. Но все последующие уравнения для вычисления ее у-координаты также пригодны и для любых других значений координаты X. На рисунке треугольники EPR и EP'Q подобны. Следовательно,
(5)
Отсюда будем иметь
(6)
X = dx/Z
Рисунок 2 - Экран и видовые координаты
Аналогично можем получить:
Y = dy/Z. (7)
Ранее было введено предположение, что точка О начала системы мировых координат примерно совпадает с центром объекта. Поскольку ось z видовой системы координат совпадает с прямой линией ЕО, которая пересекает экран в точке Q, то начало Q системы экранных координат будет находиться в центре изображения. Если бы мы потребовали, чтобы это начало координат располагалось в нижнем левом углу экрана, а размеры экрана составляли 2с1 по горизонтали и 2с2 по вертикали, то нужно дополнить формулы вычисления X и Y:
Х = d x/z + с1
Y = d y/z + c2 (8)
... материала, изменения структуры металла листовой стали при штамповке и гибке, действующих на кузов нагрузок, а также исходя из принятых в автомобилестроении подходов. 2.2 Ход построения модели кузова автомобиля ВАЗ 2108(09) За основу при построении модели используется твёрдое тело. Оно создаётся методом добавления материала между двумя или более профилями, в нашем случае используется девять ...
... банковских систем. Наиболее популярны сегодня смешанные решения, при которых часть модулей банковской системы разрабатывается компьютерным отделом банка, а часть покупается у независимых производителей. Основными платформами для банковских систем в настоящее время считаются: 1. ЛВС на базе сервера PC (10,7%); 2. Различные модели специализированных бизнес-компьютеров фирмы IBM типа AS/400 ...
... древесины горлышка, если она не будет хорошо просушена.4 Рисунок 5 — Топор для плотницких работ..2 Оборудование и инструменты Ниже перечислены всё оборудование и инструменты для изготовления декоративной вазы и подставки под неё. Оборудование: станок ТС-40, сменные патроны к нему Инструменты: штангенциркуль, линейка, циркуль, рулетка, стамески и инструменты для токарных работ, нож- ...
0 комментариев