- •Визуальное представление информации.
- •Взаимосвязь компьютерной геометрии и графики.
- •История развития компьютерной графики.
- •Анализ, синтез и обработка изображений.
- •Виртуальные графические устройства (cgi).
- •Устройства графического ввода. Режимы ввода. Графический пользовательский интерфейс (gui).
- •Устройства вывода изображений. Дисплеи. Качество изображения. Классификация устройств вывода
- •3. По технологическим способам вывода (свечение люминофора, вычерчивание пишущим узлом, перенос красителя и т.П.). Растровые дисплеи
- •Дисплеи на запоминающей трубке
- •0.10.2 Дисплеи с плазменный панелью
- •0.10.3 Дисплеи с жидкокристаллическим индикатором
- •Виртуальные поверхности отображения. Кадровый буфер и таблица цветности.
- •Особенности преобразования вектор - растр. Алгоритмы прочерчивания отрезков прямых.
- •Генерация дуг окружности и эллипса. Алгоритмы заполнения площади. Графические контроллеры. Графические процессоры. Видеокарты в персональном компьютере.
- •Алгоритмы удаления невидимых линий и поверхностей. Основные понятия и определения.
- •Классификация алгоритмов удаления невидимых линий и поверхностей. Алгоритм плавающего горизонта.
- •Алгоритм использующий z-буфер.
- •Алгоритм построчного сканирования.
- •Алгоритм “художника”.
- •Модели освещения. Flat-закраска.
- •Закраска методами Гуро и Фонга.
- •Геометрическое моделирование и интерактивная машинная графика. История развития моделирования поверхностей.
- •Аналитические способы задания поверхностей.
- •Преимущества параметрического способа задания кривых и поверхностей.
- •Отсечение нелицевых граней.
- •Однородные координаты и их особенности.
- •Поворот вокруг фиксированной точки
- •Параметрическое описание кривых.
- •Кубические кривые в форме Безье.
- •Формат файлов для хранения растровых изображений
- •Аддитивная цветовая модель rgb
- •Цветовая модель cmy
- •Аффинные преобразования на плоскости
- •2. Растяжение-сжатие осей координат.
- •3. Поворот.
- •Проекции. Основные типы
- •Модели описания поверхностей. Аналитическая модель
- •Модели описания поверхностей. Векторная полигональная модель
- •Модели описания поверхностей. Воксельная модель
- •Модели описания поверхностей. Равномерная сетка
- •Модели описания поверхностей. Неравномерная сетка. Изолинии.
- •Визуализация объёмных изображений. Каркасная визуализация
- •Алгебра векторов. Вычисление нормалей
Визуализация объёмных изображений. Каркасная визуализация
Любой трехмерный объект может быть изображен по-разному и различными способами. В одном случае можно показать форму объекта, во втором – внутреннюю структуру объекта, в третьем – имитировать реальную действительность, в четвертом – возбудить воображение зрителя чем-то неизвестным. Условно разделим способы визуализации по характеру изображений и по степени сложности соответствующих алгоритмов на такие уровни:
1. Каркасная визуализация («проволочная модель»).
2. Показ поверхностей в виде многогранников с плоскими гранями или сплайнов с удалением невидимых точек.
3. То же, что и для второго уровня, плюс сложное закрашивание объектов для имитации отражения света, затенения, прозрачности, использование текстур.
В порядке усложнения алгоритмов визуализации способы показа трехмерных объектов можно разделить на: 1. Каркасная модель. 2. Удаление невидимых точек. 3. Закрашивание граней с учетом освещения. 4.Имитация гладких поверхностей закрашиванием. 5. Наложение текстуры. 6. Добавление теней.
Простейшая, каркасная, визуализация часто используется в процессе редактирования объемных объектов. Визуализация второго уровня используется для упрощенного показа объемных объектов. Например, для графиков функций z=f(x,y) (в виде рельефа поверхности) часто достаточно показать все грани сетки одним цветом, зато нужно обязательно удалить невидимые точки. Это более сложная процедура в сравнении выводом каркасного изображения Сложность процесса графического вывода возрастает по мере приближения к некоторому идеалу – созданию полной иллюзии естественных, живых, реалистичных изображений. Усилия многих ученых и инженеров всего мира направлены на разработку методов и средств достижения этой цели. Здесь полнее всего ощущается связь компьютерной графики с естественными науками, с дисциплинами, посвященными изучению окружающего мира. Например, для создания реалистичных изображений нужно принимать во внимание законы оптики, которые описывают свет и тень, отражение и преломление. Компьютерная графика находится на стыке многих дисциплин и разделов науки.
Каркасная визуализация. Каркас обычно состоит из отрезков прямых линий – ребер многогранника, хотя можно строить каркас и на основе кривых, в частности сплайновых кривых Безье. Все ребра, которые показаны в окне вывода, видно – как ближние, так и дальние. Для построения каркасного изображения надо знать координаты всех вершин в мировой системе координат. Потом превратить координаты каждой вершины в экранные координаты в соответствий с выбранной проекцией. Потом выполнить цикл вывода в плоскости экрана всех ребер как отрезков прямых (или кривых), соединяющих вершины.
Алгебра векторов. Вычисление нормалей
Алгебра
векторов. Вектором называется отрезок
прямой, который соединяет некоторые
точки пространства А и В. Направление
вектора – от начальной точки А к конечной
точке В. Радиус-вектор R
– это вектор с начальной точкой в центре
координат. Координатами радиус-вектора
являются координаты конечной точки.
Длиной радиус-вектора часто называется
модулем, обозначается как |R|
и вычисляется следующим образом |R|=
.
Единичный
вектор – это вектор, длина которого
равна единице. Перечислим основные
операции над векторами.
Умножение вектора на число. X=Va. Результат – вектор X, длина которого в а раз больше, чем у вектора V. Если число а положительное, то направление вектора X совпадает с вектором V. При а<0 вектор X имеет противоположное вектору V направление. Если V – это радиус-вектор, то координаты вектора результата будут (ac,ay,az), т.е. каждая координата вектора увеличивается в а раз.
Сложение векторов. С=А+В. Результат сложения – это вектор, который соответствует одной из диагоналей параллелограмма, стороны которого – векторы А и В.
Все три
вектора лежат в одной плоскости. Для
радиус- векторов А и В координаты
вектора результата определяются как:
XC=XA+XB; YC=YA+YB; ZC=ZA+ZB;
Разность двух векторов С=А-В можно определить через операцию сложения С=А+(-В). Вектор разности соответствует другой диагонали параллелограмма, изображенного на рис. При вычисление радиус-векторов соответствующие координаты вычисляются:
XC=XA-XB; YC=YA-YB; ZC=ZA-ZB;
3. Скалярное произведение векторов: С=А*В. Результатом операции является число(скаляр), равное произведению длин векторов на косинус угла между ними: С=А*В=|A|*|B|*cosφ. Если А и В – это радиус – векторы, то результат можно вычислить по координатам следующим образом:
С= XA-XB+YA-YB+ZA-ZB;
Векторное произведение векторов: С=АхВ. Результат операции – вектор перпендикулярный к плоскости параллелограмма, образованного сторонами векторов А и В, а длина вектора равняется площади этого параллелограмма. |C|=|A| |B| *sinφ. В случае, если векторы А и В являются радиус-векторами, координаты вектора результата С вычисляются по формулам: XC=YAZB - ZAYB; YC=YAXB - XAZB; ZC=XAYB - YAXB;
Обратите внимание на то, что AхВ=-ВхА. Другими словами, порядок множителей определяет направление вектора результата. В этом можно убедиться, если в формуле координат поменять местами координаты векторов А и В. Кроме того, направление вектора результата операции АхВ зависит и от расположения координатных осей (система координат, изображенная на рисунке называется левой.
Назовите
ось y осью x,
а ось x осью y
(выйдет правая система), а также
соответственно поменяйте местами
координаты x и y
векторов А и В в формуле векторного
произведения. В результате такой
перестановки координаты вектора С
изменят знак, то есть вектор будет иметь
противоположное направление.
Вычисление нормалей. Рассматривая модели отражения света, вы, наверное, обратили внимание на то, что нормаль к поверхности – важный элемент. Определение вектора нормали к поверхности в заданной точке может быть выполнено разными способами. В значительной степени это определяется типом модели описания поверхности. Для поверхностей, заданных в аналитической форме, известны методы дифференциальной геометрии, которые основываются на вычислении частных производных функций описания. Например, если поверхность задана параметрическими функциями x=x(s,t), y=y(s,t), z=z(s,t). Тогда координаты нормали можно вычислить так
XN=
;
YN=
;
ZN=
.
В случае описания поверхности
векторно-полигональной моделью для
определения нормалей можно использовать
методы векторной алгебры. Пусть в
пространстве задана некоторая многогранная
поверхность. Рассмотрим одну ее плоскую
грань, имеющую вид треугольника. Для
вычисления координат вектора нормали
воспользуемся векторным произведением
любых двух векторов, которые лежат в
плоскости грани. Такими векторами могут
служить и ребра грани, например, ребра
1-2 и 1-3. Однако формулы для векторного
произведения были определены нами
только для радиус векторов. Чтобы перейти
к радиус-векторам, введем новую систему
координат, центр которой совпадает с
вершиной 1, а оси – параллельны осям
бывшей системы.
Координаты вершин в новой системе: x`=xi-x1; y`=yi-y1; z`=zi-z1; Теперь назовем ребро (1-2) вектором А, а ребро (1-3) – вектором В, как показано на рисунке.
Таким
образом, положение нормали к грани в
пространстве будет описываться
радиус-вектором N. Его
координаты в системе (x`,y`,z`)
выразим формулами для векторного
произведения: xN`=(y2-y1)(z3-z1)-
(z2-z1)(y3-y1);
yN`=(z2-z1)(x3-x1)-
(x2-x1)(z3-z1);
zN`=(x2-x1)(y3-y1)-
(y2-y1)(x3-x1);
плоская грань может быть изображена в
разных ракурсах. В каждой конкретной
ситуации необходимо выбирать направление
нормали, которое соответствует видимой
стороне грани. Если плоская грань может
быть видна с обратной стороны, то тогда
в расчетах отражения света необходимо
выбирать для нормали обратный вектор,
то есть (-N). Если полигональная
поверхность имеет не треугольные грани,
а, например, плоские четырехугольные,
то расчет нормали можно выполнять по
любым трем вершинам грани.
