Здавалка
Главная | Обратная связь

Перетворення у тривимірному просторі.



Абсолютно всі операції, які можна виконувати у двомірному просторі, можуть бути застосовані і для тривимірного простору. Це обумовлюється тим, що будь-яка фігура двомірного простору, з додаванням третьої координати, може бути представлено у тривимірному просторі. Це ніби зсув двомірної фігури по перетинаючій її площині із з’єднанням їх крайніх полігонів. В будь-якому випадку, для фігур у тривимірному просторі застосовуються ті ж самі методи та операції перетворення, і при роботі в однорідних координатах матриці перетворень/операцій будуть складатися не з трьох, а з чотирьох стовпців.

Зсув фігури. Операція зсуву реалізовується з використанням матриці перетворення (зсуву) з попереднім представленням фігури у системі однорідних тривимірних координат:

 

Масштабування фігури.Операція масштабування реалізовується з використанням матриці перетворення (зміни масштабу) з попереднім представленням фігури у системі однорідних тривимірних координат:

 

 

Загальне повне масштабування фігури.Операція загального повного масштабування відрізняється від попередньої тим, що масштабування виконується з використанням коефіцієнта масштабу, який задається в рядку і стовпці однорідних координат:

 

 

 

Поворот фігури навколо точки (m, n, k) на кут α.

Аналогічно, як і для двомірного перетворення, необхідно розкласти дану операцію на базові (найпростіші) операції, а саме: 1) перенесення тіла на вектор A(-m,-n,-k) для суміщення точки (m, n, k) з початком координат, 2) поворот тіла на кут α; 3) перенесення тіла на вектор A'(m, n, k) для повернення його у вихідне положення. Якщо уявити, що фігура представлена набором точок (вершин фігури), можна записати наступні операції: 1) - 3) з кожної з них; в матричної формі це представляється наступним чином (R(α) – матриця повороту навколо осі x, y або z):

 

 

Матриці повороту навколо осей x, y, z на кут α, матимуть наступний вигляд:

Rx =
Ry =
Rz =

 

Практична частина

 

Практична частина роботи повинна включати лістинг програмного модуля та результат виконання практичного завдання з попередньо записаною умовою.

Побудова фігури.

В загальному випадку, для побудови фігур у тривимірному просторі середовища MATLAB використовується декілька основних команд, які являється операціями утворення полігонів між заданими точками.

Для того щоб побудувати контур фігури, достатньо задати точки з відповідними координатами та задати функцію plot3 для побудови ліній з’єднання точок (рис. 2.1.).

Команда plot3(x,y,z)являється тривимірним аналогом функції plot, де x, y, z – одномірні масиви однакового розміру, будує точки з координатами x(i), y(i), z(i) і з'єднує їх прямими лініями.

Команда plot3(x,y,z), де X, Y, Z – двовимірні масиви однакового розміру, будує точки з координатами x(i,:), y(i,:), z(i,:) для кожного стовпця і з'єднує їх прямими лініями.

Команда plot3(x,y,z,s) дозволяє виділити графік функції z(x,y), вказавши спосіб відображення лінії, спосіб відображення точок, колір ліній і точок за допомогою строкової змінної s, яка може включати до трьох символів.

 

Приклад:

Для побудови даної фігури за допомогою координатної моделі, задамо координатами вершин, параметри куба по наступних точках А1(2,4,0), В1(4,4,0), С1(4,4,0), D1(2,2,0), А2(2,4,2), В2(4,4,2), С2(4,4,2), D2(2,2,2) і побудуємо його з використанням функції plot3.

Для побудови фігури такого вигляду складемо матрицю координат двомірних площин, з яких вона будується. Після чого запишемо загальну матрицю фігури, розміром 5×5.

Нижче наведено найпростіший координатний метод побудови фігури.

 

Синтаксис:

A1=[2,4,0];

B1=[4,4,0];

C1=[4,2,0];

D1=[2,2,0];

A2=[2,4,2];

B2=[4,4,2];

C2=[4,2,2];

D2=[2,2,2];

A1B1C1D1A1=[A1;B1;C1;D1;A1];

A2B2C2D2A2=[A2;B2;C2;D2;A2];

A1B1B2A2=[A1;B1;B2;A2;A1];

D1C1C2D2=[D1;C1;C2;D2;D1];

A1D1D2A2=[A1;D1;D2;A2;A1];

i=1:5;

X=ones(5,5);

Y=ones(5,5);

Z=ones(5,5);

X(i,1)=A1B1C1D1A1(i,1);

Y(i,1)=A1B1C1D1A1(i,2);

Z(i,1)=A1B1C1D1A1(i,3);

X(i,2)=A2B2C2D2A2(i,1);

Y(i,2)=A2B2C2D2A2(i,2);

Z(i,2)=A2B2C2D2A2(i,3);

X(i,3)=A1B1B2A2(i,1);

Y(i,3)=A1B1B2A2(i,2);

Z(i,3)=A1B1B2A2(i,3);

X(i,4)=D1C1C2D2(i,1);

Y(i,4)=D1C1C2D2(i,2);

Z(i,4)=D1C1C2D2(i,3);

X(i,5)=A1D1D2A2(i,1);

Y(i,5)=A1D1D2A2(i,2);

Z(i,5)=A1D1D2A2(i,3);

plot3(X,Y,Z,'b','LineWidth',3)

grid on;

xlim([0;6])

ylim([0;6])

zlim([0;4])

Рис. 2.1. Контур фігури куба А1В1С1D1А2В2С2D2

Зверніть увагу: оскільки принцип побудови графічного об’єкта в середовищі MATLAB заключається в тому, що утворюється контур за послідовно заданими точками. Тому дана фігура може бути побудована за допомогою аналітичної моделі, для чого слід записати функцію послідовної задачі координат по відповідних вершинах за оптимальною траєкторією з поверненням до початкової точки.

 

Для того щоб побудувати полігональну модель фігури, потрібно задати функцію fill3 для побудови полігонів з’єднання точок двомірних площин із подальшим їх складанням у тривимірному просторі (рис. 2.2.).

 

Рис. 2.2. Полігональна фігура куба А1В1С1D1А2В2С2D2

 

Наведемо нижче приклад одного з перетворень у тривимірному просторі.

 

Приклад:

Виконаємо поворот попередньо заданої фігури навколо точки Е(3,3,1) на кут α = 45º відносно осі х. Для цього побудуємо матрицю фігури, потім складемо матрицю перетворення і перемножимо їх відповідно за вище описаним правилом, попередньо перевівши їх до однорідних координат.

Рис. 2.3. Зображення початкової та перетвореної (повернутої) фігури


Завдання

 

Відповідно до свого спискового номера, журналу академгрупи, вибрати варіант завдання. Для виконання практичної роботи, відповідно до свого варіанту потрібно побудувати каркасну та полігональну модель фігури у тривимірному просторі за довільно вибраними значеннями координат. Також, відповідно до свого варіанту, виконати наступні перетворення: масштабування, поворот навколо точки за заданими кутами. Зробити відповідні висновки та оформити звіт.

Варіанти завдання

Таблиця 2.1

Параметри завдання для практичного виконання

№ п/п Фігура Коеф. масштабу Крапка повороту Кут повороту по осі x Кут повороту по осі y Кут повороту по осі z
1. Тетраедр k = 0,5 Вершина фігури α = 35º β = 40º
2. Куб k = 1,2 Центр фігури α = 50º γ = 25º
3. Піраміда k = 1,5 Центр основи β = 60º γ = 30º
4. Паралелепіпед k = 1,7 Середина бічної грані α = 20º γ = 45º
5. Призма k = 2 Центр основи α = 75º β = 25º
6. Тетраедр k = 0,3 Вершина фігури α = 40º β = 35º
7. Куб k = 1,6 Центр фігури α = 25º γ = 50º
8. Піраміда k = 2 Центр основи β = 30º γ = 60º
9. Паралелепіпед k = 0,7 Середина бічної грані α = 45º γ = 20º

Продовження таблиці 2.1

10. Призма k = 1,3 Центр основи α = 80º β = 35º
11. Тетраедр k = 0,9 Вершина фігури α = 35º β = 40º
12. Куб k = 1,6 Центр фігури α = 50º γ = 25º
13. Піраміда k = 2,1 Центр основи β = 60º γ = 30º
14. Паралелепіпед k = 1,8 Середина бічної грані α = 20º γ = 45º
15. Призма k = 2,2 Центр основи β = 80º γ = 35º
16. Тетраедр k = 0,5 Вершина фігури α = 45º β = 35º
17. Куб k = 1,2 Центр фігури α = 20º γ = 55º
18. Піраміда k = 2 Центр основи β = 35º γ = 60º
19. Паралелепіпед k = 0,4 Середина бічної грані α = 45º γ = 25º
20. Призма k = 0,3 Центр основи α = 75º β = 35º

 

Контрольні запитання

1. Які типи координат використовуються у тривимірній графіці?

2. Яке параметричне число образу фігур другого порядку для тривимірному простору?

3. Опишіть координатну модель для тривимірного простору?

4. Яким чином може реалізовуватись побудова об’єктів в MATLAB у тривимірному просторі?

5. Яким чином виконується поворот фігури на заданий кут навколо крапки у тривимірному просторі?








©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.