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

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



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

Практичне застосування перетворення координат можна побачити у будь-якій програма з галузі САПР, як двомірне, так і тривимірне. Коли ми працюємо у візуальному середовищі програми, нам непомітні математичні комбінації та розрахунки із координатами та розмірами побудованих об’єктів, але так чи інакше вони присутні, і для інженера необхідно це знати і розуміти. Дані знання дадуть змогу більш грамотно та логічно підходити до моделювання в системах автоматичного проектування, що дозволить значно спростити метод побудови об’єкта та зекономити час.

 

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

 

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

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

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

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

Команда plot(x,y) відповідає побудові звичайної функції, коли одновимірний масив x відповідає значенням аргументу, а одновимірний масив y – значенням функції. Коли один з масивів X або Y або обидва двовимірні, реалізуються наступні побудови:

– якщо масив Y двовимірний, а масив x одновимірний, то будуються графіки для стовпців масиву Y в залежності від елементів вектора x;

– якщо двовимірним є масив X, а масив y одновимірний, то будуються графіки стовпців масиву X в залежності від елементів вектора y;

– якщо обидва масиву X і Y двовимірні, то будуються залежності стовпців масиву Y від стовпців масиву X.

В будь-якому випадку це є функція побудови полігона за заданими координатами.

 

Приклад:

Задамо трикутник трьома точками із координатами А(3,1), В(1,5), С(6,6).

Для побудови фігури такого вигляду складемо матрицю координат фігури АВС та побудуємо контур за допомогою функції plot для побудови графіка по заданих точках. Для того, щоб контур був замкнений, необхідно в кінці фігури АВС продублювати координати першої точки А, тобто повернутись до початкової точку побудови фігури. Для кращого візуального сприйняття фігури на площині, задано межі площини проектування дещо більші за саму фігуру, з використанням функцій xlim, ylim. Результат побудови зображено на рис. 1.1.

 

Синтаксис:

A=[3,1];

B=[1,5];

C=[6,6];

ABCA=[A;B;C;A];

i=1:4;

X=ABCA(i,1);

Y=ABCA(i,2);

fill(X,Y,'g')

plot(X,Y,'b','LineWidth',3)

grid on;

xlim([0,9]);

ylim([0,9]);

Рис. 1.1. Контур фігури трикутника АВС

 

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

Команда fill(x,y,'b') зафарбовує багатокутник, заданий одновимірними масивами x, y, кольором, який може бути заданий або одним із символів 'r', 'g', 'b', 'c', 'm', 'y', 'w', 'k', або вектором [rgb]. Вершини багатокутника задаються відповідними парами елементів масивів x, y однакового розміру. Багатокутник повинен бути замкненим, тому його перша і остання вершини, якщо це можливо, з'єднуються лінією.

 

Синтаксис:

fill(X,Y,'g')

Рис. 1.2. Зафарбований контур фігури трикутника АВС

 

Також для побудувати зафарбованого контуру фігури, може бути використана функція patch, за допомогою якої будується заповнена двомірна область відповідно до заданих координат.

Команда patch(X,Y,C) додає заповнені 2-D фрагменти об'єкта до поточних осей. Фрагмент об'єкта одного або декількох полігонів визначаються відповідно до координат його вершин. Матриці X і Y вказують вершин багатокутника. Якщо X і Y є матрицею розміром m×n, тоді MATLAB повертає n полігони з вершинами m. C – визначає колір фрагменту.

 

Синтаксис:

patch(X,Y,'c')

Рис. 1.3. Зафарбований фрагмент фігури – трикутник АВС

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

 

Приклад:

Задамо центр кола точкою з координатами О(3,3), а також радіус r = 2.

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

 

Синтаксис:

R=2;

x0=3;

y0=3;

phi=degtorad(0):0.1:degtorad(360);

X=x0+R*cos(phi);

Y=y0+R*sin(phi);

fill(X,Y,'y');

grid on;

xlim([0;6]);

ylim([0;6]);

Рис. 1.4. Зафарбований фрагмент фігури – коло

Зсув фігури.

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

 

 

Приклад:

Задамо трикутник трьома точками із координатами А(3,1), В(1,5), С(6,6).

Для зсуву даної фігури складемо матрицю АВС в однорідних координатах та матрицю перетворення, у якій вкажемо зсув фігури на 2 одиниці відносно осі x і на 3 одиниці відносно осі y. Перемножимо ці матриці відповідно до вказано правила перетворення та побудуємо фігуру перетвореної фігури.

Синтаксис:

ABCo=[A,1;B,1;C,1];

mp=[1,0,0;0,1,0;2,3,1];

i=1:3;

ABCp=ABCo*mp;

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

 







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