- •Тема 1 : Приложение компьютерной графики
- •Тема 2 : Интерактивные системы машинной графики
- •Тема 2: Преобразование графических изображений
- •Системы координат
- •Тема 4: Однородные координаты и матричное представление преобразований.
- •Тема 5. Проецирование на проекционные плоскости.
- •Тема 6: Физические принципы формирования оттенка.
Тема 1 : Приложение компьютерной графики
1.Компьютерное моделирование
2.Системы автоматизации научных исследований
а.проектирование
б.Конструирование
в.Производство
г.Создание технологического процесса
3.Бизнес
4.Искусство
5.СМИ
6.Досуг
Тема 2 : Интерактивные системы машинной графики
Основные задачи ИСМГ – это ввод/вывод и обработка информации.
При выполнении вывода задача ИСМГ – преобразовать информацию из исходного высокоуровневого представления предметной область в команды графических устройств вывода. При выполнении ввода требуется преобразование низкоуровневой информации от физических устройств ввода в высокоуровневую информацию в язык предметной области.
Существует 2 способа построения средств вывода :
1.Системы с графическим языком высокого уровня
2.Системы с расширенным графическим языком
ИСМГ делятся на суперстанции и графические рабочие станции.
Суперстанции – это соединение в одной системе возможностей компьютера и графического процессора с системой. СС состоит из : один или несколько ЦП с большой кэш-памятью, сопроцессор(с плав. запятой/векторный), графическая подсистема с граф. Процессором с кадровым и Z- буферами, внутренние шины, мощные сетевые контроллеры, большой объем RAM, большой объем ROM, один или несколько портов, стандартные шин ввода/ввода, спец. ОС.
Рабочие графические станции … графическими элементами и устройствами. Обеспечивает ввод/вывод информации и связь с суперстанциями или другими раб.станциями.
Большинство графических станций построены для работы с растровыми системами. Архитектура растровых графических станций настроены на интерактивную графику и включает возможности суперстанции и растровую графическую дисплейную систему. РГДС осуществляет ф-ции формирования и модификации набора данных памяти и изображении и управляет режимами вывода ГИ на монитор.
Специализированные растровые графические станции состоят из следующих функциональных компонентов: 1)видеопамять(хранение информации в растровой форме(координаты + цвет))
2)графический процессор
3)математический процессор(реализует основные ф-ции по формированию изображения в видеопамяти и преобразует графическую информацию в растровую форму(функционально-растровое преобразование))
4)видеоконтроллер(управляет сигналами для доступа к видеопамяти со стороны граф процессора и обеспечивает регенерацию экранного буфера)
Тема 2: Преобразование графических изображений
Преобразования используются для организации динамики сцены : изменение формы и положения сцены во времени. Для этого используется 3 вида преобразований : перемещение, масштабирование, вращение.
Системы координат
Для преобразования динамики сцены используются 3 вида систем координат
1)мировая система координат
XмYмZм.
Размещается в некоторой точке сцены в начале и остается неподвижной все время.
2)система координат наблюдателя
XнYнZн.
Определяет положение наблюдателя в пространстве сцены и задает направление взгляда. Она может быть как подвижной, так и статичной.
3)Система координат объекта
XоYоZо.
Является неподвижной относительно объекта и может быть подвижной относительно сцены.
Чтобы получить объект на проекционной плоскости, необходимо связать 3 системы координат. Для этого необходимо проделать следующие шаги:
1)Преобразовать координаты объекта, заданной с собственной системе координат, в мировые координаты.
2)Преобразовать мировые координаты объекта в систему координат наблюдателя.
3)спроецировать полученные координаты на проекционную плоскость в системе координат наблюдателя.
нымПреобразование графических объектов в ГР могут проводится через матрицы или через вектора. Преобразование производится по точкам.
1)Перемещение
Математически его можно описать с помощью вектора переноса.
Т.к имеем радиус-вектор, то перенос т.А в т.Б будет соответствовать векторной записи
Б = А + Р. Следовательно для переноса точки в пространстве сцены необходимо добавить к ее координатам некоторые изменения которые будут являться координатами вектора переноса.
Ax + Rx; Ay + Ry; Az + Rz/
Форма не меняется!!!
2)Масштабирование
Растяжение или сжатие объекта вдоль соответствующих осей координат относительно начала координат. Применяется к каждой точке объекта. При этом местоположение объекта не меняется, но меняется его размеры или форма.
Масштабирование может быть линейным (относительным, однородным)(коэффициенты масштабирование по всем осям одинаковы) и нелинейным (неотносительным, неоднородным)(коэффициенты масштабирование по всем осям разные //объект меняет форму).
При сжатии коэффициент масштабирования (0;1). При расширении >1.
Масштабирование в ГР проще реализовать матричным преобразованием.
В матричной форме создается матрица масштабирования S=Sx 0
0 Sy
Для масштабирования точки умножается вектор точки на матрицу.
3)Вращение
Производится по точкам на некоторый угол относительно начала координат. При вращении точки А на угол a для определения координат т.В учитывается угол а – его радиус-вектор и ось оХ(угол который они образуют betha). Определение координат В:
Xb = r * cos(a+betha), Yb = r * sin(a+betha)
Учитывая, что cos betha = X/r, sin betha = Y/r, то получаем
Xb = Xcos a – Ysin a
Yb = Ysin a + Xcos a
Из-за упрощения математических формул вращения, происходит приближение к нашему восприятию , но из-за этого появляются погрешности.
Чтобы они не появлялись, используют матричную систему вращения
Cos a Sin a
-Sin a Cos a
Матрица вращения умножается на координаты точки А и получаем координаты т. В
Иногда используют векторное представление вращения. Математические расчеты сложнее, но погрешности меньше
Тема 3: Графика в C++ Builder
Графика может быть выведена поверхности формы или на компоненте Image. Для отображения графики используется Canvas. Для отображения графических примитивов к Canvas необходимо применить методы.
Методы:
-LineTo(x,y) – линия из текущего положения курсора до указанных координат.
-MoveTo(x,y) – перемещение курсора в положение (x,y)
-Rectangle(x,y,x1,y1) – прямоугольник (координаты верхнего левого и правого нижнего углов)
-Ellipse(x1,y1,x2,y2) – эллипс (по описанному вокруг него прямоугольника, заданного координатами)
-PolyLine(TPoint[], k) – ломаная по заданным координатам (TPoint[] – массив точек, k – указывает кол-во ломаных)
-Polygon(TPoint[], n) – многоугольник по заданны координатам (n –кол-во вершин)
-Arc(x1,y1,x2,y2,x3,y3,x4,y4) – дуга по контору эллипса, вписанного в прямоугольник с координатами(*1, *2) с началом (*3) и концом(*4)
-Pill(x1,y1,x2,y2,x3,y3,x4,y4) – сектор (см. Arc) координаты *3 и *4 соединяются линиями с центром прямоугольника
-TextOutA(x,y,Text) – вывод текста Text, начиная с позиции (x,y)
Для текста можно определить некоторые свойства, используя TFont:
-Name - имя шрифта //Name = “<font name>”
-Size – высота шрифта(pt)(1 pt = 1/72 ``)
-Style – стиль (Bold,Italic etc). указывается при помощи стандартных констант
//Style = fsBold;
Стили можно комбинировать // Style = fsBold << fsItalic
-Color – цвет (только константы)
Свойства для рисования(Pen) и закрашивания(Brush). Pen – задается цвет, толщина, тип линии. Brush - цвет и способ закраски внутри замкнутой поверхности.
Pen : 1)Color – цвет линии
2)Width – толщина линии (px)
3)Style – стиль линии(сплошная(ум.), пунктирная) можно комбинировать
Brush: 1)Color
2)Style (Solid(ум.))