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

fullKG

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

x

 

x

 

 

x

 

 

x

 

x

 

 

x

 

 

a b c a b c

y y y y y y

a b c a b c

1

a

b

0

 

 

 

 

 

 

 

 

 

 

 

c

d

0

 

 

 

 

 

 

 

 

 

 

1 *

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

*

 

x

**

 

 

 

;

 

 

 

 

 

 

 

 

 

s

 

 

 

 

 

y

*

 

y

**

 

 

 

 

 

 

 

 

 

 

 

 

s

 

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

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

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

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

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

y0 0

x0 xi xj

x

y

a

1

 

1

0

0

 

cos

sin

0

 

 

1

0

0

 

a

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

y

0

1

0

*

sin

cos

0

*

0

1

0

 

1 *

 

 

 

 

 

 

b

 

b

 

 

 

 

 

 

 

 

 

 

 

 

x

y

1

x

y

1

 

 

0

0

1

 

x

y

1

 

c

 

c

 

 

0

0

 

 

 

 

 

 

 

 

 

 

0

0

 

 

 

 

 

 

 

 

 

сдвиг

 

 

 

 

поворот

 

 

 

 

возвращение

 

 

 

 

 

 

 

 

координат

 

 

 

 

 

 

 

 

 

 

начала

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

координат

 

 

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

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

p2

y

x

 

y*

 

x**

y**

α

 

 

x*

 

p1

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

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

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

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

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

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

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

04. Двумерное смещение (перенос) плоских фигур без искажения их формы. Понятие об однородных координатах.

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

x

a

y

a

1

a

b

0

 

 

 

 

 

 

 

 

 

x

 

y

 

c

d

0

 

 

 

1 *

 

 

 

b

 

b

 

 

 

 

x

c

y

c

1

l

m

s

 

 

 

 

 

 

 

 

 

 

x

y

a

1

1

0

0

 

x

l

y

a

m

1

 

a

 

 

 

 

 

 

 

 

 

a

 

 

 

 

x

y

0

1

0

 

x

l

y

m

 

1 *

 

 

 

1

b

 

b

 

 

 

 

 

b

 

 

b

 

 

x

y

1

l

m

1

 

 

 

 

 

 

 

 

 

c

 

c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

05. Поворот плоской фигуры вокруг произвольной точки плоскости.

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

y0 0

x0 xi xj

x

y

a

1

 

1

0

0

 

cos

sin

0

 

 

1

0

0

 

a

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

y

0

1

0

*

sin

cos

0

*

0

1

0

 

1 *

 

 

 

 

 

 

b

 

b

 

 

 

 

 

 

 

 

 

 

 

 

x

y

1

x

y

1

 

 

0

0

1

 

x

y

1

 

c

 

c

 

 

0

0

 

 

 

 

 

 

 

 

 

 

0

0

 

 

 

 

 

 

 

 

 

сдвиг

 

 

 

 

поворот

 

 

 

 

возвращение

 

 

 

 

 

 

 

 

координат

 

 

 

 

 

 

 

 

 

 

начала

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

координат

 

 

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

06. Матрица преобразования трехмерных объектов и назначение ее элементов.

Матрица преобразования для объемных объектов

 

 

 

 

 

 

 

 

a

b

c

o

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

y1

z1

 

1

 

d

e

f p

 

 

 

 

 

 

 

 

 

 

 

 

 

x

2

y

2

z

2

1 * g h

k r

 

 

 

 

 

 

 

 

 

 

..........

 

.........

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

..........

 

.........

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

l

m

n

s

 

 

 

 

 

 

 

 

 

 

3 x1

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

3x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

четыре подматрицы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1x 3

1x1

 

3 x 3

a, е, k – изменение масштаба по осям и отображение относительно плоскостей или начала координат.

Остальные – отвечают за поворот объектов вокруг осей, отдельно – за сдвиг.

1 x 3

l, m, n – параллельный перенос объектов тела соответственно вдоль оси x, y, z.

1 x 1

s – за изменение масштаба всей фигуры и отображение фигуры относительно начала координат.

3 x 1

отвечает за преобразование тела в перспективе.

Примеры:

a

0

0

0

 

 

 

 

 

 

0

1

0

0

 

0

0

1

0

 

 

 

 

 

 

 

 

 

0

0

 

 

0

1

Изменение

масштаба вдоль оси

‘x’ в ‘a’-раз

    

a 0 0 0

1 0 0 0

 

 

 

 

 

 

 

 

 

 

0 1 0 0

 

0 a 0 0

a

0 0 1 0

 

 

 

0 0 a 0

 

 

 

 

 

 

 

 

1

 

 

 

 

 

0 0 0

 

 

 

0 0 0 1

 

 

 

 

 

a

 

Изменение

масштаба вдоль оси ‘y’ в ‘е’-раз

1 0

0 0

 

 

 

 

 

 

0 e

0 0

 

 

0 0

1

0

 

 

 

 

 

 

 

 

0

 

 

0 0

1

Изменение

масштаба вдоль оси

‘z’ в ‘k’-раз

 

 

1

0 0 0

 

1 0 0

0

 

 

 

0 1 0 0

0 1 0 0

 

 

 

0

0 1 0

 

0 0 k

0

 

 

 

 

 

 

 

 

l

0 0 1

0 0 0

1

 

 

 

Изменение

 

Параллельный

масштаба всей

 

 

перенос

фигуры

 

 

объекта

 

 

вдоль оси x

 

 

 

 

 

Для поворота тела вокруг оси z на угол α:

y

 

Правосторонняя система координат.

 

 

 

 

Поворот против часовой стрелки.

 

 

Поворот против часовой стрелки, если

 

x

смотреть из конца оси в начало

 

координат.

 

 

z α

 

 

cos

sin

0

0

 

 

 

sin

cos

0

0

 

T

 

 

 

z

0

0

1

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

1

Поворот фигуры вокруг оси ‘z’

 

 

1

0

0

0

 

 

 

0

cos

sin

0

 

T

 

 

 

x

 

 

 

 

 

0

sin

cos

0

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

1

Поворот фигуры вокруг оси ‘х’

 

 

cos

0

sin

0

 

 

 

0

 

1

0

0

 

T

 

 

 

 

y

 

 

 

 

 

 

sin

 

0

cos

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

0

0

1

Поворот фигуры вокруг оси ‘y’

При переходе от ‘z’ к ‘х’ (‘х’ к ‘у’) вся таблица смещается на один элемент вправо и вниз не выходя за границы матрицы 3х3.

 

Повернуть фигуру вокруг оси P1P2 на угол σ (сигма)

 

 

 

 

 

 

 

 

 

 

 

y

 

 

 

2

 

x Px2

Px1

1

Ось повернуть так, что бы x прошла

 

2

 

 

 

1

 

y Py

 

Py

 

через точку (Δx, Δy)

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

y* (y**)

P2

 

 

 

 

 

 

 

 

 

 

P2

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z Pz

 

 

Pz

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

y*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P1

 

α

 

 

 

 

 

 

 

 

 

z**

 

 

 

 

P1

 

 

 

 

 

z

 

 

 

x*

 

 

 

 

 

 

 

 

 

 

γ

 

x*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

о*

γ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

∆x, ∆y

 

 

 

 

 

 

 

 

 

 

z*

 

 

x**

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P1P2 оказалась в плоскости x** 0* у**

 

Проекция оси P1P2 на плоскость z* о* x*

 

Далее, оси y** совмещаем с P2,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

либо x** совмещаем с P2

 

 

 

 

 

Поворот фигуры вокруг оси ‘z’ на угол ‘α’

3

После поворота получилось:

 

4

 

 

 

 

 

 

y* (y**)

P2

 

 

 

 

 

 

 

 

 

y*( y**)

x***

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y***

 

 

 

 

 

P2

 

 

 

 

 

 

 

 

 

 

P1

α

 

 

x*

 

 

z**

 

 

 

 

 

 

 

 

 

 

 

z**

 

 

 

 

 

 

 

 

( z***)

 

 

 

 

 

 

 

x*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P1

 

 

 

 

 

 

 

 

 

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z*

 

 

 

 

 

 

 

 

 

 

 

 

z*

 

x**

 

 

 

 

 

 

 

Теперь поворот вокруг прямой P1P2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

т.е. оси x*** на угол сигма

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

объект

 

 

 

1

0

0

0

 

cos

0

sin

0

 

cos

sin

0

0

 

 

 

 

0

1

0

0

 

 

 

 

0

1

0

0

 

 

 

sin

cos

0

0

 

 

 

 

*

 

 

 

*

 

 

 

*

 

 

*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

1

0

sin

0

cos

0

 

0

0

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

yP

zP

 

 

 

0

0

0

1

 

0

0

0

1

 

 

 

 

xP

1

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

перенос начала

 

 

 

 

 

поворот фигуры

 

 

 

 

поворот фигуры

 

 

 

 

 

 

 

 

координат

 

 

 

 

 

 

вокруг оси ‘y’

 

 

 

 

вокруг оси ‘z’

 

 

 

 

 

 

 

 

в точку Р1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

0

0

0

 

 

 

 

 

0

cos

sin

0

 

 

 

 

 

*

 

 

*T

*T

*T

, yP , zP

0

sin

cos

0

 

 

смещения xP

 

 

1

1

1

 

 

 

 

 

 

 

 

 

 

отрабатываем обратно все

0

0

1

1

подготовительные операции

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

Параметры o, p, r – перспективные преобразования объекта вдоль соответствующих осей.

H

1

 

1

 

 

x

 

1 rz

x *

 

 

r

 

 

1

 

 

 

rx

 

 

 

1

1

1

 

 

 

 

 

 

 

 

 

 

 

1

Дали, что бы вернуться в нужную систему координат надо все поделить на z1r+1

 

x

 

 

y

 

z

 

 

 

1

 

 

0

 

0

0

 

x

y

z

 

 

 

 

 

 

1

 

 

 

 

z r 1

1

 

 

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

1

1

 

 

 

 

 

 

 

 

 

 

 

*

 

0

 

 

1

 

0

0

 

 

 

 

 

 

 

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

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

0

 

1

r

 

 

 

 

 

 

 

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

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

0

 

 

0

 

0

1

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P1(x1,y1,z1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y1*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Н – это точка наблюдения (наблюдатель),

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

находится

 

на

расстоянии z обратно

 

 

 

 

 

Н

 

 

 

 

 

 

 

 

 

 

 

 

 

 

пропорционально коэффициенту r

 

 

 

 

 

 

 

 

 

 

z

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x*

 

 

x

 

y*

 

 

y

 

z*

z

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

1

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

zr 1

1

 

zr 1

 

 

1

 

zr

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

1

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

x1 *

 

 

 

H

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

x1

 

 

 

H z1

 

 

1

 

z1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Параллельные прямые будут сходиться в бесконечности.

(x2,y2,∞) x1,y1

P2(x1,y1,z1)

Z1

P1(x1,y1,z1)

(x1,y1,0)

Н

z

Если z=0, то

x * x

не преобразуется

1

1

 

y * y

не преобразуется

1

1

 

Если z=∞, то

z * z

0

не преобразуется

1

1

 

 

x * 0

 

 

2

 

 

 

y

* 0

 

 

2

 

 

 

z *

z

 

 

1

 

 

1

//

1

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

2

z r

1

 

 

1

 

r

 

z

 

 

 

r

 

 

 

 

1

 

 

z

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

Точка схождения симметрична точке наблюдения.

o, p, r – это перспективные преобразования объекта вдоль соответствующих осей. r – это относительно оси z

Это одноточечное преобразование

 

r

 

Н(xн1,yн1,zн))

 

 

 

 

 

 

 

 

Перенести так, чтобы z прошла через наблюдателя.

 

 

 

 

Здесь r – это модуль:

r

x

2

y

2

z

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

объект

1

0

0

0

 

 

Можно перенос с поворотом:

 

 

 

0

1

0

0

 

 

 

 

 

 

 

 

 

*

 

 

 

 

 

 

 

 

 

0

0

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

07.

Представление

 

 

 

 

 

0

0

0

1

трехмерных

объектов

 

 

 

 

 

 

 

 

 

 

на

плоскости.

Виды

аксонометрической проекции.

Матрица

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

Отображение вокруг произвольной плоскости в пространстве

-определить угол наклона

-повернуть (что бы совпало с одной из линий)

-потом, что бы совпало со всей плоскостью, т.е. еще раз поворачиваем

-отобразить

-отказаться от первых трех подготовительных операций.

Проекция трехмерного объекта на плоскость XOY (т.е. должны обнулить все точки z)

r

 

x

2

y

2

 

 

 

 

1

 

1

1

Далее, определить какие точки видны, а какие затенены.

 

cos

sin

0

0

 

1

0

0

0

 

cos

0

sin

0

 

sin

cos

0

0

 

0

cos

sin

0

 

 

0

1

0

0

Tz

 

0

0

1

 

Tx

 

sin

cos

 

Ty

 

 

0

cos

 

 

 

0

 

0

0

 

sin

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

1

 

0

0

0

1

 

 

0

0

0

1

 

 

Поворот фигуры

 

 

Поворот фигуры

 

 

 

Поворот фигуры

 

 

 

вокруг оси ‘z’

 

 

 

 

вокруг оси ‘х’

 

 

 

вокруг оси ‘y’

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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