Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
12260.pdf
Скачиваний:
141
Добавлен:
29.03.2016
Размер:
1.6 Mб
Скачать

Компьютерная графика.

c11

c12

 

c1p

]

 

C= c21

c22

 

c2p

,

[cm1 cm2

cmp

 

для которой элементы cij вычисляются по формуле:

n

cij=aik bkj k=1

Правило вычисления элементов матрицы С можно легко запомнить по названию "строка на столбец". И действительно, для вычисления любого элемента cij необходимо умножить элементы i-й строки матрицы А на элементы j-го столбца матрицы В.

 

 

 

 

[

cij

] = [ai1 ai2

 

 

 

 

 

 

 

b1j

 

ai n

b2j

.

]

 

 

[

bnj

]

Произведение матриц определено только для случая, когда количество столбцов матрицы А равно количеству строк матрицы В.

Преобразование координат.

Пусть задана n-мерная система координат в базисе (k1 ,k 2 ,k 3 , ,kn ), описывающая положение точки в пространстве с помощью числовых значений ki . В компьютерной графике чаще всего используется 2-х мерная (n=2) и 3-х мерная (n=3) системы координат.

Если задать другую, N-мерную, систему координат в базисе (m1 ,m2 ,m3 , … ,mN ) и

поставить задачу определения координат в новой системе, зная координаты в старой, то решение (если оно существует) можно записать в таком виде:

 

m1= f 1 (k1, k2, k3, ,kn),

 

m2= f 2 (k1, k 2, k3, ,k n) ,

 

{mN = f N (k1, k 2, k 3, ,kn ) ,

где f i

- функция пересчета i-й координаты, аргументы — координаты в системе k i .

Можно

поставить и обратную задачу

— по известным координатам

(m1, m2, m3, ,mN ) определить координаты

(k1, k 2, k3, ,k n) . Решение обратной

задачи запишем так:

 

-22-

Компьютерная графика.

{k1=F 1 (m1, m2, m3, ,mn ),

k2=F 2 (m1, m2, m3, ,mn) ,

k N =F N (m1, m2, m3, ,mn) ,

где F i – функция обратного преобразования.

В случае, когда размерность систем координат не совпадают (n ≠ N ) , осуществить

однозначное преобразование координат зачастую не удается. Например, по двумерным экранным координатам нельзя без дополнительных условий однозначно определить трехмерные координаты отображаемых объектов.

Если размерности систем совпадают (n=N ) , то также возможны случаи, когда нельзя однозначно решить прямую или обратную задачи.

Преобразование координат классифицируют:

по системам координат — например, преобразование из полярной системы в прямоугольную;

по виду функции преобразования f i .

По виду функций преобразования различают линейные и нелинейные преоб-

разования. Если при всех i = 1, 2, …, N функции

f i

— линейные относительно

аргументов

(k1, k 2, k3, ,k n) , то есть

f i=аi1 k1+аi2 k2 +...+аi n k n+аi n+1 ,

где aij

константы,

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

называются

линейными, а при

(n=N )

аффинными.

функция f i

 

 

 

 

Если хотя

бы для одного i

нелинейная относительно

(k1, k 2, k3, ,k n) , тогда преобразование координат в целом не линейно.

Линейные преобразования наглядно записываются в матричной форме:

m

]

 

a11

a12 a1n

a1n+ 1

k

1

]

1

 

a21

a22

a2n

a2n +1

 

m2

=

k

2

 

 

 

 

 

 

[mN

 

[aN1 aN2

 

aNn

aNn+1][k N

Здесь матрица коэффициентов

(aij ) умножается

на

матрицу-столбец (ki) и в

результате получается матрица-столбец (тi) .

 

 

 

 

 

Аффинные преобразования координат.

Аффинные преобразования — это преобразования при которых параллельность прямых сохраняется.

Аффинные преобразования координат на плоскости.

Общая формула описания аффинных преобразований:

{X =Ax +By+C , Y =Dx+ Ey+F ,

-23-

Компьютерная графика.

В матричном виде формула выглядит так:

 

[YX ] = [yx] [DA

EB ] + [CF ].

Частные случаи аффинного преобразования: Параллельный перенос.

{X =xdx Y = ydy

Масштабирование.

{X =x/ sx

Y = y/ sy

Поворот.

{X = x cosα + y sin α Y =−x sin α + y cos α

Однородные координаты.

Введем понятие однородных координат:

На плоскости точка в однородных координатах описывается не двумя, а тремя числами. Пусть на плоскости есть точка М с координатами (х, у). Тогда ее однородными координатами называются три одновременно не равных нулю числа

(X, Y, h) таких, что (x, y) = (X/h, Y/h, h).

В машинной графике точке с координатами (х, у) на плоскости ставится в соответствие точка с координатами (х, у, 1) в пространстве. Фактически точка (х, у) проектируется на плоскость, параллельную координатной и отстоящей от нее на расстояние, равное единице.

Теперь перепишем общую формулу аффинных преобразований в матричном виде:

[X ]

Y

1

x

A

B

C

]

= [1y

] [D0

E0

F1

Теперь перепишем операции аффинного преобразования в матричном виде. Параллельный перенос.

1

0

dx

]

T (dx ,dy) = [00

01

1dy

Масштабирование.

-24-

Компьютерная графика.

S (sx , sy) = [

1/ sx

0

0

00

1/0sy

10]

Поворот.

 

 

 

 

]

[

cos α

sin α

0

R(α ) = −sin α

cos α

0

 

 

0

0

1

 

Аффинные преобразования координат в трехмерном пространстве.

Запишем в виде формулы:

{X =Ax+By+Cz+ D ,

Y =Ex +Fy+Gz+H ,

Z =Kx +Ly+Mz+N ,

где А, В, ..., N —константы. Дадим также в матричной форме:

X

A

B

C

D

] [

x

],

Y

E

F

G

H

y

[Z1

]= [K0 0L M0

N1

1z

Для трехмерного пространства любое аффинное преобразование также может быть представлено последовательностью простейших операций. Рассмотрим их.

Параллельный перенос.

{X = xdx Y = ydy Z=zdz

T (dx ,dy ,dz ) = [

1

0

0

dx

0

1

0

dy

00

00

01

1dz]

Масштабирование.

{X =x/ sx Y = y/ sy

Z=z/ sz

S (sx , sy , sz) = [

1/ sx

0

0

0

]

0

1/ sy

0

0

00

00

1/0sz

10

Поворот вокруг оси x на угол α.

-25-

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]