fullKG
.pdf01. Описание графических объектов в машинной графике. Понятие о графических примитивах и их атрибутах.
Графические примитивы.
(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” степени, т.е. двумерный объект описывается с помощью трех координат.