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

fullKG

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

Для проекции сверху

Повернуть вокруг оси x на 90 градусов, тогда верх окажется спереди и, после этого, матрицу проецирования.

объект

 

1

0

0

0

1 0

0

0

 

 

 

 

 

 

 

 

 

* 0

0

1

0

* 0 1

0

0

 

0

1

0

0

0

0

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

1

0

0

0

1

Поворот на 90°

Матрица

cos90°=0

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

sin90°=1

 

Чтобы получить все проекции:

Для главного вида сразу определить охватывающий прямоугольник.

xmax, ymax

xmin, ymin

И, если следующий вид наложится, его надо сместить. Для всех поворотов (поворот, спроецировать)

08. Диметрическая проекция. Математические преобразования для получения элементов матрицы-преобразователя для построения этой проекции.

Изометрические и диаметрические проекции на плоскости ХОУ формируют изображение объемных тел, вид которых создает иллюзию объемности.

Смысл: тело вначале поворачивают вокруг оси у на некоторый угол, затем поворачивают вокруг оси х на некоторый угол и потом проецируют.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

*

 

 

 

 

 

 

1350

 

 

 

 

 

 

 

 

 

 

 

 

 

 

*

 

 

 

 

 

 

 

 

 

 

х

 

450

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1z*

 

 

 

 

 

 

 

 

z

 

 

 

 

 

 

 

 

 

 

 

 

1х

*

1у

*

 

 

2* 1z

*

 

 

 

 

Общий вид для изометрической и диаметрической проекций.

1х

1 0 01

 

 

 

 

 

 

 

1 0 0 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

01 0 0

 

 

 

 

 

 

 

 

 

 

1у

 

 

 

 

 

Т

 

 

 

Т

 

 

 

 

 

 

 

 

 

 

 

 

 

 

01 01

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 0 0 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1z

0 011

поворот

поворот

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вокруг у

вокруг х

 

0 0 01

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

объект

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

проекцияна

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ось ХОУ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cos

 

sin sin

 

sin

cos

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

cos

 

 

sin

0

 

 

 

 

 

 

 

Т

 

Т

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

sin

sin

cos

 

cos

cos

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

0

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

Tx

 

 

 

 

 

 

 

Ty

 

 

 

 

 

 

0

 

 

0

1

 

0

 

0

 

sin

cos

0

 

sin

0

cos

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

0

0 1

 

 

 

0

 

0

 

0

1

 

 

 

0

0

0

1

 

 

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

 

 

 

 

 

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

 

 

 

 

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

 

 

 

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

 

 

 

 

 

 

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

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Углы поворота вокруг осей:

=20,7050 =22,2080

 

 

 

 

0,925820

0,133631

- 0,353553

0

 

 

 

 

 

0

0,935414

0,353553

0

 

Т

 

Т

 

 

 

 

 

 

 

 

 

 

 

0,377964

- 0,327329

0,866025

0

 

 

 

 

 

 

 

 

 

 

0

0

0

1

 

 

 

 

 

 

 

Если обнулить третий столбец, то мы получим координаты точек спроецированные на осях х,у,z (т.е. на плоскости визуализации).

Пример. Описание куба.

 

2

 

 

 

3

1т. 0111

5т. 0011

1

4

 

2т. 0101

6т. 0001

 

6

 

 

7

3т. 1101

7т. 1001

 

 

 

 

5

 

 

 

4т. 1111

8т. 1011

 

 

 

 

 

 

 

 

 

8

 

 

 

 

 

 

 

09. Изометрическая проекция и ее матричное представление, используемое в машинной графике.

Изометрические и диаметрические проекции на плоскости ХОУ формируют изображение объемных тел, вид которых создает иллюзию объемности.

Смысл: тело вначале поворачивают вокруг оси у на некоторый угол, затем поворачивают вокруг оси х на некоторый угол и потом проецируют.

y

 

 

 

 

*

 

 

 

 

 

 

 

 

 

 

 

1200

 

 

 

 

 

*

1x

*

 

1z

 

 

Z

 

 

 

 

 

 

 

 

 

 

 

 

1х* 1у* 1z*

x

Общий вид для изометрической и диаметрической проекций.

1х

1 0 01

 

 

 

 

 

 

1 0 0 0

 

 

 

 

 

 

 

 

01 0 0

 

1у

 

 

 

 

Т

 

 

Т

 

 

 

 

01 01

 

 

 

 

 

 

 

 

 

 

 

 

0 0 0 0

 

 

 

 

 

 

 

 

 

 

 

1z

0 011

 

поворот

 

поворот

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вокруг у

 

вокруг х

0 0 01

 

 

 

объект

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

проекцияна

 

 

 

 

 

 

 

 

 

 

ось ХОУ

 

 

 

 

 

cos

 

 

 

 

 

0

 

 

Т Т

 

 

 

 

 

 

 

 

 

 

sin

 

 

 

 

 

0

 

 

cos

sin

0

 

 

 

sin

cos

0

T

 

 

z

 

 

 

 

 

0

0

1

 

 

 

 

 

0

0

0

 

 

 

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

 

sin sin

sin cos

 

 

cos

 

 

sin

 

 

sin cos

cos cos

0

 

 

0

1

 

 

0

0

 

 

 

 

 

 

 

0

 

0

0

 

 

 

 

 

0

cos

 

sin

0

 

 

T

 

 

 

 

 

x

 

 

 

 

 

0

0

sin

cos

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

0

0

 

0

1

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Углы поворота вокруг осей:

=35,264390=450

0

0

0

1

 

 

cos

0

sin

0

 

 

 

0

 

1

0

0

 

T

 

 

 

 

y

 

 

 

 

 

 

sin

 

0

cos

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

0

0

1

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

 

 

 

 

0,707107

0,408248

- 0,577353

0

 

 

 

 

 

0

0,816497

0,577345

0

 

Т

 

Т

 

 

 

 

 

 

 

 

 

 

 

0,707107

- 0,408248

0,577353

0

 

 

 

 

 

 

 

 

 

 

0

0

0

1

 

 

 

 

 

 

 

Если обнулить третий столбец, то мы получим координаты точек спроецированные на осях х,у,z (т.е. на плоскости визуализации).

Пример. Описание куба.

 

2

 

 

 

3

1т. 0111

5т. 0011

1

4

 

2т. 0101

6т. 0001

 

6

 

 

7

3т. 1101

7т. 1001

 

 

 

 

5

 

 

 

4т. 1111

8т. 1011

 

 

 

 

 

 

 

 

 

8

 

 

 

 

 

 

 

10. Перспективные преобразования и их геометрическая интерпретация на примере преобразования точек и прямых, параллельных оси Z.

 

 

 

 

 

 

 

 

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

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

x *

x

 

y *

y

z *

z

 

1

1

1

 

 

 

1

z r

1

1

z r 1

1

z r

1

 

 

 

 

1

 

 

1

 

1

 

Дали, что бы вернуться в

 

x

y

z

 

 

1

0

 

1

 

1

1

1

 

 

 

 

 

 

 

 

 

 

 

..........

 

 

.........

 

*

 

0

1

 

 

 

 

 

0

0

 

.........

 

 

 

 

 

 

 

 

 

 

 

..........

 

.........

 

 

 

0

0

нужную систему координат

0

0

x

y

z

z r

 

 

 

 

1

1

1

1

 

 

 

 

0

0

 

..........

 

 

.........

 

 

 

 

 

 

 

1

r

 

 

 

 

 

 

 

..........

 

.........

 

 

0

1

..........

 

.........

 

 

 

y1

 

 

 

 

 

 

надо все поделить на z1r+1 1

 

z1

P1(x1,y1,z1)

 

 

 

 

 

 

x1

 

 

 

 

y

 

 

 

 

y1*

 

 

0

 

 

 

 

 

x1*

 

 

 

 

x

 

 

 

 

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

 

 

 

находится

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

Н

 

 

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

z

 

 

 

 

 

1

x *

 

H

 

 

r

1

 

 

x

H z

1

 

 

 

z

1

 

1

 

 

 

 

 

 

r

1

 

 

 

 

 

H

1

 

1

 

 

x

 

1 rz

x *

 

 

r

 

 

1

 

 

 

 

 

 

 

1

1

1

rx

 

 

 

 

 

 

 

 

 

 

 

1

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

(x2,y2,∞) x1,y1

P2(x1,y1,z1)

Z1

P1(x1,y1,z1)

(x1,y1,0)

Н

z

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Если z=0, то

x1* x1

 

 

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

 

 

 

 

y1* y1

 

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

 

 

 

 

z1* z1 0

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

 

 

 

Если z=∞, то

x2* 0

 

 

 

 

 

 

 

 

 

 

 

 

 

y2* 0

 

 

 

 

 

 

 

 

 

 

 

 

 

z2*

 

z1

 

 

1

 

 

1

 

//

1

0

 

 

 

 

 

 

 

 

 

 

 

 

z1r

1

 

1

 

r

 

z1

 

 

 

 

 

 

r z1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

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

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

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

r

x

2

y

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

 

1

 

 

 

 

 

 

 

 

 

 

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

 

r

 

 

x

2

y

2

z

2

 

 

 

 

 

 

 

 

 

11.

 

 

 

 

 

 

Математическое

 

 

1

 

 

1

 

1

 

1

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

прямых

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

линий и отрезков в машинной графике.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Прямая

 

 

 

 

 

 

Описания вида "y=ax+b" не используются в компьютерной графике

 

задается координатами двух точек (начальной и конечной)

 

Используется в основном матричное и параметрическое представление прямой.

P

(x

2

, y

2

, z

2

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P (x , y , z )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

1

 

1

 

 

Матричное представление:

x x1

x2 x1

x x1

x2 x1

y y

 

 

 

 

1

 

 

 

 

 

= 0

y

y

 

 

2

1

 

 

z z1

= 0

z2 z1

Для плоской прямой используется первое уравнение, а для пространственной используется два этих уравнения.

Они получаются из уравнения

x x

 

y y

 

z z

 

1

 

1

 

 

1

 

 

 

 

 

 

x

x

 

y

y

 

z

2

z

2

1

 

2

1

 

 

1

Параметрическое представление

x(t) y(t) z(t)

 

x1 y1 z1

(x2 x1) t

( y2 y1) t

(z2 z1) t

Достоинства:

1.Не требует для точек операции деления и в этом случае не получается ситуации переполнения данных при делении на ноль, т. е. когда результат получается близким к бесконечности.

2.Описание прямой не зависит от положения этих точек, в этом случае эти уравнения позволяют создать тестовые функции:

f (x, y) (x x1 )( y2 y1 ) ( y y1 )(x2 x1 ) , используемые для

определения положения этих точек.

a.

Если функция f (x, y) 0 ,то точка P3(x3,y3), подставленная в это

 

выражение вместо x и y находится на этой прямой.

b.

Если f (x, y) > 0, то точка находится справа от прямой, идущей от

 

точки Р1 к точке Р2.

c.Если

f

(x,

P2

P1 y) < 0, то точка находится слева от точек Р1 и Р2

P2 P1

Параметрическое представление. Каждая координата не зависит друг от друга, а зависит от дополнительного параметра "t"

Особенность:

Если 0 ≤ t ≤1, то описывается отрезок.

То получим

Если t < 0, то это участок от "–

" до точки

Если t > 1, то это участок от точки

P

до "+

 

2

 

P1 .

"

Параметрическое описание используется для определения точек пересечения двух прямых. Точки для одной задаются в матричной форме, а для второй параметрической форме. Или же оба задаются в параметрическом виде, в одном случае используют “t”, а во втором “ ”. Если эти переменные лежат в диапазоне от

0 до 1, то они пересекаются своими отрезками. Если совпадают в других случаях, то совпадают на продолжениях.

Если мы приравняем

x3 (x4 x3 ) x1 (x2 x1 )t y3 ( y4 y3 ) y1 ( y2 y1 )t

(x3 x1 ) (x4 x3 ) (x2 x1 )t ( y3 y1 ) ( y4 y3 ) ( y2 y1 )t

(x

 

x )( y

2

y ) (x

4

x )( y

2

y )

3

 

1

 

 

1

 

 

 

3

 

 

1

( y

y )(x

x ) ( y

 

y )(x

 

x )

 

 

3

 

1

 

 

2

 

1

 

 

4

 

3

 

2

1

(x

4

x )( y

2

y ) ( y

4

 

y

)(x

2

x )

 

 

3

 

 

 

1

 

 

 

 

3

 

 

 

1

Если это выполняется, то они параллельны.

* ( y2

y1 )

* (x2

x1 )

и вычесть

x

y

 

x y

 

 

 

 

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

x x1

-( y2 y1 )

y y

 

 

 

 

 

1

 

 

 

 

 

 

=0 Так описывается отрезок перпендикулярный заданному отрезку.

x

2

x

 

 

1

 

 

 

 

 

 

P2

P3

P1

Если хотим перпендикулярный отрезок провести через заданную точку Р3, то такая прямая задается следующим образом:

-(

x x3

y

2

y

 

1

)

y y

 

 

3

 

 

 

 

 

 

 

 

 

=0

x

2

x

 

 

 

1

 

В первом Для того,

x x2 ,

-( y2 y1

случае перпендикулярная прямая проходит через точку Р1 чтобы она проходила через точку Р2:

y y

2

 

 

 

 

 

 

 

 

 

 

 

=0

),

y2 y1

 

 

 

 

 

 

12. Математическое представление окружностей и эллипсов в машинной графике. Для описание правильных прямых

x

 

y

 

R

 

 

 

 

Окружность

2

2

2

 

 

 

 

 

 

 

 

 

 

 

 

(x x

)

2

( y y

)

2

R

2

 

 

 

 

 

0

 

 

 

0

 

 

 

 

Описания описанного выше вида не используется в компьютерной графике.

Используется параметрическое описание.

x Rcos

y Rsin

x x0 R cos y y0 R sin

Окружность преобразуется в растр.

Выбирается ближайшая точка и подсвечивается.

Каждую последующую точку считают из предыдущей и какогонибудь угла ∆α и получается многоугольник.

∆α

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