Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КГ лабы.doc
Скачиваний:
15
Добавлен:
10.05.2015
Размер:
455.68 Кб
Скачать

Теоретическая справка.

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

Задача состоит в том, чтобы определить проекцию точки p(х,у,z) в трехмерном пространстве на некоторую плоскость, называемую картинной плоскостью. Такая проекция Р(X,Y) называется образом точки р(х,у,z).

При центральной проекции точка зрения (или центральная проекция) находятся на одной из главных осей трехмерной ортогональной системы координат, например на Z – оси. Следовательно ось Z является оптической осью. Картинная плоскость перпендикулярна оптической оси и параллельна плоскости XY.

Пусть X,Y – координаты точки в картинной плоскости. Расстояние от картинной плоскости до координатной плоскости XYZ обозначим Z1, а расстояние от точки зрения Р0 до начала координат как Z0.

Совместим картинную плоскость с плоскостью XY. Тогда получим:

или в однородном пространстве:

.

Если точка зрения окажется в бесконечности , то и .

В однородном пространстве общая формула преобразования выглядит:

a, e, j– масштабирование

l, m, n– проецирование

p, q, r– смещение

s– комплексное масштабирование

x– вращение

Всего различают:

Одноточечная проекция (l ≠ 0)

Двухточечная проекция (l, m ≠ 0)

Трёхточечная проекция (l, m, n ≠ 0)

Цепочка преобразований

Для выполнения сложных пространственных преобразований объекта необходимо сложное перемещение разложить на последовательность элементарных преобразований и применить их последовательно к исходному объекту. Результирующая матрица сложного преобразования определяется произведением матриц элементарных преобразований (см.лаб.раб.N2).

Так как операция умножения матриц не является коммутативной, менять местами матрицы в цепочке преобразований нельзя.

Порядок выполнения.

  1. Получить вариант задания.

  2. Определить вид матрицы сложного преобразования.

  3. Рассчитать тестовый пример.

  4. Написать и отладить программу, реализующую данное преобразование.

  5. Показать работу преподавателю.

  6. Оформить отчет и защитить работу.

Содержание отчета.

  1. Формулировка задания.

  2. Теоретическая часть.

  3. Текст программы.

  4. Тестовый пример.

  5. Выводы.

Контрольные вопросы.

  1. Какие бывают перспективные преобразования?

  2. Что будет, если в одноточечной проекции удалить точку зрения в бесконечность?

  3. Какие элементы матрицы преобразования отвечают за перспективную проекцию?

  4. Что такое центральная проекция?

  5. Что такое образ точки в центральной проекции?

  6. Что такое картинная плоскость?

  7. Что такое оптическая ось?

ЛАБОРАТОРНАЯ РАБОТА №5

Удаление невидимых линий и поверхностей. Алгоритм, использующий z-буфер

Цель работы:Освоить алгоритмические основы удаления невидимых линий и поверхностей и уметь их использовать в практике программирования.

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