Материал: Алгоритмы компьютерной графики. В 3 ч. Ч. 3 (200

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

a b p

c d q ,

m n s

где коэффициенты:

a, b, c и d – отвечают за изменение масштаба, сдвиг и вращение; m и n отвечают за перенос;

p и q отвечают за получение проекций;

s – отвечает за полное изменение масштаба. Для примера:

1 0 0

x y 1 0 1 0

x y s

x / s y / s 1 ,

0 0 s

при s < 1 происходит общее увеличение масштаба по осям координат, при s > 1 – уменьшение.

3.3. Двумерное вращение вокруг произвольной оси

Ранее рассматривалось вращение вокруг начала координат. Однородные координаты обеспечивают вращение относительно произвольной точки. Вращение выполняется в несколько этапов:

–перенос центра вращения в начало координат;

–поворот относительно начала координат;

–перенос центра вращения в исходное положение.

То есть вращение на произвольный угол выглядит следующим образом:

1

0

0

cos

sin

0

1

0

0

x y 1 0

1

0

sin

cos

0

0

1

0

n

m

1

0

0

1

m

n

1

 

cos

 

sin

0

x y 1

sin

 

cos

0 .

m cos

1 n sin

m sin

n cos 1

1

 

 

41

 

 

Аналогично выполняются и другие преобразования.

3.4. Трехмерные преобразования

Рассмотрим трехмерную декартову систему координат, являю-

щуюся правосторонней (рис. 3.4).

Y

Z X

Рис. 3.4. Декартова система координат

Будем считать положительными такие повороты, при которых (если смотреть с конца полуоси в направлении начала координат) поворот на 90против часовой стрелки будет переводить одну полуось в другую. На основе этого соглашения строится таблица.

Направления поворота в декартовой системе координат

Ось вращения

Положительное направление поворота

 

 

X

от Y к Z

 

 

Y

от Z к Х

 

 

Z

от Х к Y

 

 

Аналогично двумерному пространству точка в трехмерном пространстве описывается вектором

[x y z].

42

И аналогично для реализации трехмерного преобразования перейдем к однородным координатам:

x y z 1 X Y Z H

X

 

Y

 

Z

1 .

 

 

 

 

 

H

 

H

 

H

 

 

 

 

Обобщенная матрица преобразования для трехмерных координат (4 × 4) также делится на 4 части:

a

b

c

p

 

d

e

f

q

,

h

i

j

r

 

l

m

n

s

 

где коэффициенты:

a, b, c, d, e, f, h, i и j – отвечают за изменение масштаба, сдвиг и вращение;

l, m и n – отвечают за перенос;

p, q и r – отвечают за преобразования в перспективе; s – отвечает за полное изменение масштаба. Рассмотрим частные случаи:

– изменение масштаба

 

Sx

0

0

0

 

 

 

x y z 1

0

Sy

0

0

Sx x

Sy y

Sz z 1 ;

0

0

Sz

0

 

 

 

 

 

0

0

0

1

 

 

 

– сдвиг

43

 

 

 

1

b

c

0

x

y

z 1

d

1

f

0

 

 

 

h

i

1

0

 

 

 

0

0

0

1

x yd

hz

bx

y

iz

cx

fy z 1 ;

– вращение вокруг оси X

 

1

0

0

0

T

0

cosθ

sin θ

0 .

 

0

sin θ

cosθ

0

 

0

0

0

1

Матрицы поворота сохраняют длину и углы, а матрицы масштабирования и сдвига их не сохраняют.

44

Библиографический список

1.Роджерс Д. Алгоритмические основы машинной графики: пер. с

англ. – М.: Мир, 1989.

2.Роджерс Д., Адамс Дж. Математические основы машинной графики: пер. с англ. – М.: Машиностроение, 1980.

3.Роджерс Д., Адамс Дж. Математические основы машинной графики: пер. с англ. – М.: Мир, 2001.

4.Фоли Дж., вэн Дэм А. Основы интерактивной машинной графики: в 2 кн.; пер. с англ. – M.: Мир, 1985.

5.Вельтмандер П.В. Алгоритмы компьютерной графики: http://ermak.cs.nstu.ru/kg_rivs

6.Демин А.Ю., Кудинов А.В. Компьютерная графика: учеб. пособие. – Томск: Изд-во ТПУ, 2004.

7.Donald Hearn, M. Pauline Baker. Computer graphics: – Prentice Hall, Inc, 1994.

8.Пореев Виктор Н. Компьютерная графика. СПб.: БХВ-Петербург,

2005.

9.Блатнер Д., Фрейзер Б. Реальный мир Adobe Photoshop CS2: пер.

сангл. – М.: ООО «И.Д. Вильямс», 2007.

45

Источник: https://studfile.net/preview/16724844/