Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

fullKG

.pdf
Скачиваний:
114
Добавлен:
12.02.2018
Размер:
736.4 Кб
Скачать

01. Описание графических объектов в машинной графике. Понятие о графических примитивах и их атрибутах.

Графические примитивы.

(1)– геометрические атрибуты – определяют форму графического объекта;

(2)– атрибуты представления (видимости, визуализации);

(3)– атрибуты идентификации – как обеспечивается замыкание обратной связи человека с машиной;

Базовые графические примитивы.

1.Полилиния – набор точек соединяющихся отрезками прямых.

Точки характеризуются геометрическими атрибутами, а как соединяются это атрибуты видимости.

Линии: пунктир, точечная, штриховая, замкнутая, разомкнутая, разного цвета, разной толщины – атрибуты визуализации.

Если пользователь выделяет линию и она меняет свои атрибуты визуализации – это и есть атрибуты идентификации – т.е. это атрибуты видимости но меняющиеся.

2.Кронтура замкнутые (разомкнутые) – контур может быть заполнен определенными фигурами (штриховка, звездочки, элементы микросхем и т.д.), а так это тоже что и полилиния – характеризуется массивом точек которые соединяются либо отрезками или дугами.

Атрибут – набор точек.

3.Матрица точек – прямоугольная область m x n каждая точка которой характеризуется своим цветом. Эта всегда область // границам экрана.

Атрибут – m x n точками и координаты привязки.

m x n может меняться только в сторону увеличения масштаба, если меняем в уменьшение, то мы можем потерять некоторую информацию.

4.Маркеры – специальные значки позволяющие отмечать отдельные координаты графических элементов:

Атрибут 1– координаты Атрибут 2 – вид маркера.

5.Текстовая строка – строка состоящая из символов, характеризуется:

-геометрическим атрибутом – точка привязки.

-атрибутом видимости – стиль текста, тип, наклон, привязка текста к точке привязки (по началу или по концу строки), сжатие (растяжение).

Обобщенный графический примитив – совокупность базовых примитивов:

-эллипс

-гипербола

-транзистор

-изображение микросхемы

02. Математическое представление и преобразование координат точек на плоскости. Изменение масштаба изображения по координатам, отображение относительно осей, начала координат, поворот, сдвиг.

Изменение геометрических атрибутов можно свести к операции умножения матриц.

y

а

b

x

y

a

 

a

 

x

y

 

b

 

b

x

y

 

c

 

c

матрица

описания

объекта

 

 

 

с

 

 

a

b

 

 

 

 

 

 

 

 

c

d

 

 

 

 

матрица преобразования

х

 

 

x

*

 

 

 

 

y

*

 

 

 

 

 

a

 

 

 

 

a

 

 

 

 

 

 

 

 

 

 

 

x

* a y

 

* c

x

* b y

 

* d

 

a

 

 

 

a

 

a

 

 

 

a

 

 

 

 

 

 

 

 

 

 

 

 

x

* a y

 

* c

x

* b y

 

* d

 

b

 

 

b

 

b

 

 

b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

....................... .......................

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

Есть коэффициент "a" отличный от 0: a 0 d = 1

c = b = 0

x

y

a

 

 

ax

y

a

 

 

a

 

 

 

 

a

 

 

x

y

 

 

ax

y

 

 

b

 

b

 

 

b

 

b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

изменение масштаба по оси X

а > 0

a < 0: знак координаты меняется – картинка переходит в отрицательную область; а = -1: получаем отображение относительно оси “Y”

коэффициент "a" отвечает за изменения масштаба по оси “X” и отображения относительно оси “Y”

a1

d0

bc 0

x

y

a

 

 

x

dy

a

 

 

a

 

 

 

 

a

 

 

x

y

 

 

x

dy

 

 

b

 

b

 

 

b

 

b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Коэффициент "d"

отвечает за изменение масштаба по оси “Y” и отображение

относительно оси “X”.

d = -1

m a d 0;

c = b = 0 – тогда изменяем масштаб, если m < 0 то отображение

относительно обоих осей.

a d 1

 

 

 

 

 

 

 

 

 

 

b 0

 

 

 

 

 

 

 

 

 

 

 

 

 

c 0

 

 

 

 

 

 

 

 

 

 

 

 

 

x

y

 

 

 

 

 

 

x

x

*b y

a

 

 

 

1

b

 

 

a

a

 

 

 

a

 

a

 

 

 

 

 

 

 

 

 

x

y

 

 

 

 

 

x

x

*b y

 

 

b

 

b

 

 

 

 

 

 

 

 

 

b

b

b

 

 

 

 

 

 

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сдвиг по

a d b 0 c 0

 

3*

 

 

 

 

xi b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

координате “Y” на величину пропорциональную “x”

1

Сдвиг по координате “X” на величину пропорциональную “y”

Поворот относительно начала координат:

α – угол поворота

x

 

x

 

 

x

 

 

a b c

y y y

a b c

 

 

cos

sin

 

*

 

 

 

 

 

 

sin

cos

 

 

 

 

Поворот на угол α против часовой стрелки, масштаб изменяться не будет.

С помощью матричного преобразования нельзя просто перенести параллельно объект, также поворот объекта вокруг произвольной точки в области. Для этого переходим в другую координатную систему, используем обобщенные координаты. – Когда объект “n”-ой степени описывается с помощью “n+1” степени, т.е. двумерный объект описывается с помощью трех координат.

xaxb

xc

x

a

 

 

x

 

 

b

 

x

c

 

 

y y y

y y y

a

b

c

a b c

1

a

b

0

 

 

 

 

 

1

* c

d

0

1

l

m

s

 

 

 

 

 

 

1

1

0

0

 

x

a

l

y

a

m

1

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

0

 

x

 

l

y

 

m

1 *

 

 

 

 

 

1

 

 

 

 

 

 

b

 

 

b

 

 

1

l

m

s

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Параллельный перенос по плоскости без изменения формы.

Если

l m 0 s 0

 

x

a

y

a

s

 

 

 

 

 

 

=

xb

yb

s

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Перешли в плоскость s

x y

**

**

x* ; s

y* s

s- масштабирование одновременно по обеим осям

s > 1 – масштаб уменьшается

0 < s < 1 – масштаб увеличивается

s < 0 – изменение масштаба и отображение относительно начала координат.

Поворот относительно точки "O": надо перенести начало координат в точку "0" (можно двигать либо объект, либо начало координат)

y0 0

 

 

x0

 

xi

 

xj

 

 

 

 

 

 

 

 

 

x

y

 

1

 

1

0

0

cos

sin

0

 

1

0

0

a

 

a

 

 

 

 

 

 

 

 

 

 

 

 

 

xb

yb

1

*

0

1

0

* sin

cos

0

*

0

1

0

 

yc

 

 

 

y0

 

 

0

0

 

 

 

y0

 

xc

1

x0

1

 

1

x0

1

сдвиг

поворот

возвращение

координат

 

начала

 

 

координат

Либо перемножаем последовательно, либо сначала три последних матрицы перемножаем и потом умножаем на первую.

Поворот относительно прямой:

p2

y

x

y*

x**

y**

α

 

x*

p1

1.перенести начало координат в точку р1 (x*,y*)

2.поворачиваем на угол α (x**,y**)

3.отображаем относительно оси х**

4.поворачиваем на угол - α

5.переносим обратно начало координат

1-2 это подготовительные операции

3 - основная операция

03. Преобразование отрезков прямых и плоских фигур на плоскости. Изменение их масштаба, поворот, сдвиг, отображение относительно осей координат и произвольной прямой.

Изменение геометрических атрибутов можно свести к операции умножения матриц.

y

а

с

b

х

матрица преобразования

xa

ya

x

y

b

b

x

y

c

c

матрица

описания

объекта

 

 

a

 

 

 

 

 

 

 

c

 

 

 

 

 

 

x*

 

 

 

a

b

x

* a y

 

* c

 

a

 

a

 

 

x

* a y * c

d

 

b

b

 

 

.......................

 

 

 

 

 

 

 

a

 

 

 

y*

 

 

 

 

x * b y

 

* d

a

 

 

a

 

 

 

 

 

 

xb * b yb * d

.......................

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

Есть коэффициент "a" отличный от 0: d = 1

c = b = 0

a 0

x

y

a

 

 

ax

y

a

 

 

a

 

 

 

 

a

 

 

x

y

 

 

ax

y

 

 

b

 

b

 

 

b

 

b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

изменение масштаба по оси X

а > 0

a < 0: знак координаты меняется – картинка переходит в отрицательную область; а = -1: получаем отображение относительно оси “Y”

коэффициент "a" отвечает за изменения масштаба по оси “X” и отображения относительно оси “Y”

a1

d0

bc 0

xa

ya

 

xa

dya

 

xb

yb

 

xb

dyb

 

 

 

 

 

 

 

 

 

 

 

 

 

Коэффициент "d" отвечает за изменение масштаба по оси “Y” и отображение относительно оси “X”.

d = -1

m a d 0;

c = b = 0 –

относительно обоих осей.

a d 1 b 0

c 0

x

y

 

 

 

 

 

 

x

 

 

1

b

 

 

a

 

a

 

a

 

 

 

 

 

x

y

 

 

 

 

 

x

 

b

 

b

 

 

 

 

 

 

 

b

 

 

 

 

 

 

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

тогда изменяем масштаб, если m < 0 то отображение

 

 

 

 

 

 

x

*b y

a

 

 

a

 

 

 

x

*b y

 

 

 

 

b

 

b

 

 

 

 

 

 

 

 

 

 

 

 

3*

 

xi b

 

 

 

3

1*

2*

2 1

Сдвиг по координате “Y” на величину пропорциональную “x”

a d b 0 c 0

1

Сдвиг по координате “X” на величину пропорциональную “y”

Поворот относительно начала координат:

α – угол поворота

x

 

x

 

 

x

 

 

a b c

y y y

a b c

 

 

cos

sin

 

*

 

 

 

 

 

 

sin

cos

 

 

 

 

Поворот на угол α против часовой стрелки, масштаб изменяться не будет.

С помощью матричного преобразования нельзя просто перенести параллельно объект, также поворот объекта вокруг произвольной точки в области. Для этого переходим в другую координатную систему, используем обобщенные координаты. – Когда объект “n”-ой степени описывается с помощью “n+1” степени, т.е. двумерный объект описывается с помощью трех координат.

Соседние файлы в предмете Компьютерная Графика