Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
графика_NEW.docx
Скачиваний:
1
Добавлен:
14.09.2019
Размер:
78.66 Кб
Скачать

Тема 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(ум.))