Графічні команди та функції

  • Вид работы:
    Реферат
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Украинский
    ,
    Формат файла:
    MS Word
    87,77 Кб
  • Опубликовано:
    2013-04-30
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Графічні команди та функції

Міністерство освіти і науки, молоді та спорту України

Національний технічний університет України








Реферат на тему:

Графічні команди та функції













Київ

Зміст

Загальні відомості по графічним графікам та функціям

Розглянемо двомірні графіки

Графіка в лінійному масштабі

Розглянемо трьохвимірні графіки

Завдання осей координат

Лінії рівня

Додаткові можливості

Список використаної літератури

Загальні відомості по графічним графікам та функціям

Починаючи з версії 4.0 до складу системи MATLAB входить потужна графічна підсистема, яка підтримує як засобу візуалізації двовимірної і тривимірної графіки на екран терміналу, так і засоби презентаційної графіки. Слід виділити декілька рівнів роботи з графічними об'єктами. В першу чергу це команди і функції, орієнтовані на кінцевого користувача і призначені для побудови графіків в прямокутних і полярних координатах, гістограм і столбцових діаграм, тривимірних поверхонь і ліній рівня, анімації. Графічні команди високого рівня автоматично контролюють масштаб, вибір кольорів, не вимагаючи маніпуляцій з властивостями графічних об'єктів. Відповідний низькорівневий інтерфейс забезпечується дескрипторної графікою, коли кожному графічному об'єкту ставиться у відповідність графічна підтримка (дескриптор), на який можна посилатися при зверненні до цього об'єкта. Використовуючи дескрипторного графіком, можна створювати меню, кнопки виклику, текстові панелі і інші об'єкти графічного інтерфейсу.

За обмеженого обсягу даного довідкового посібника в нього включені тільки графічні команди і функції з мінімальними елементами дескрипторної графіки. Зацікавленому читачеві слід звернутися до документації по системі MATLAB, і в першу чергу до щойно вийшла з друку книзі "Using MATLAB Graphics".

Елементарні графічні функції системи MATLAB дозволяють побудувати на екрані та вивести на друкувальний пристрій наступні типи графіків: лінійний, логарифмічний, полулогарифмической, полярний.

Для кожного графіка можна задати заголовок, нанести позначення осей і масштабну сітку.

 

Розглянемо двомірні графіки

(y) - побудова графіка одновимірного масиву в залежності від номера елемента (для двовимірного масиву будуються графіки для стовпців); plot (x, y) - побудова графіка функції y = y (x); при двовимірному х будуються графіки х = х (у); якщо обидва масиву двовимірні, будуються залежності для відповідних стовпців; plot (x, y, LineSpec) - завданням рядки LineSpec (до 3 символів) визначає стиль ліній, форму маркера точок і колір ліній і маркера:

Символ стиля линии

Цвет

Цвет

Непрерывная -  Штриховая --  Двойной пунктир :  Штрихпунктирная -. 

Желтый y  Фиолетовый m  Голубой c  Красный r 

Зеленый g  Синий b  Белый w  Черный k 


Маркер може визначатися символами:

+ * ° ´ s (квадрат) d (ромб) р (п'ятикутник) h (шестикутник)^ <> (стрілки)

За умовчанням вибирається безперервна лінія з точковим маркером і чергуванням квітів з жовтого по синій.(x1, y1, LineSpec1, x1, y1, LineSpec2, ...) - будує на одному графіку кілька ліній (діапазон по аргументу - об'єднання х1 і х2;(..., 'PropertyName', PropertyValue, ...)-задає значення властивостей графічного об'єкту Line (товщину ліній LineWidth, розмір маркера MarcerSize, колір маркера MarcerFaceColor і та ін.)

Приклад:

>> x=0:0.3:6;

>> y=besselj(0,x);

>> x1=0:0.4:8;

>> y1=besselj(1,x1);

>> plot(x,y,'-sk', x1,y1,'-pk','LineWidth',1 )

Приклад виконання функції plot зображено на рис1.

Рис1. Приклад графіка, функції plot.

Побудова графіків функцій(<ім'я функції>, limits) будує графік функції (функцій) в інтервалі limits = [xmin, xmax]. В якості імені функції може використовуватися М-файл або рядок типу 'sin (x)', '[sin (x) cos (x)]', '[sin (x), myfun1 (x), myfun2 (x)]' . Можна встановити розміри графіка по осі значень функції limits = [xmin, xmax ymin ymax].(<ім'я функції>, limits, eps) будує графік c відносною похибкою ерs (за замовчуванням 0.002) і максимальне число кроків (1/eps) +1. Цю конструкцію можна доповнити четвертим параметром n (n +1 - мінімальне число точок) і параметром LineSpec:

>> fplot ('[besselj (0, x) besselj (1, x) 0]', [0 10], [], 20)('f (x)') будує графік f (x), заданої символьним виразом (наприклад, ezplot ('x ^ 2-2 * x +1')), на інтервалі [-2p 2p] з висновком вираження в якості заголовка графіка.('f (x)', limits) і ezplot ('f (x)', limits, fig) будують графік f (x) на зазначеному інтервалі і в заданому вікні. Приклад побудови графіків функцій зображено на рис.2.









Рис.2. Приклад графіка, функції fplot.

Графік в полярних координатах визначається функціями polar (f, r) і polar (f, r, LineSpec), де f - масив значень кута і r - відповідні значення радіусу: x=r×cos(j), y=r×sin(j):

>> f=0:0.01:2*pi;

>> r=sin(2.*f).*cos(2.*f);

>> hp=polar(f,r),hold on

>> set(hp,'LineWidth',4)

Приклад виконання зображено рис3.










Рис3. Реалізація приведеного прикладу.

Розглянемо ще один приклад:

>> f=0:0.01:12*pi;

>> r=exp(-0.1*f);

>> hp=polar(f,r) ,hold on

>> set(hp,'LineWidth',2)

Реалізація роботи відтворена на рис4.










Рис 4. Реалізація приведеного прикладу.

Графік у логарифмічному масштабі задається функцією loglog c тим же набором параметрів, що і plot, з тією лише різницею, що проводиться масштабування десятковим логарифмування по обидва координатам.

Графік у напівлогарифмічному масштабі задається функціями semilogx і semilogy c тим же набором параметрів, що і plot (проводиться масштабування логарифмування по одній з координат).

Графік з двома осями ординат (одна відображається ліворуч, інша справа) реалізується функцією plotyy (x1, y1, x2, y2) і тією ж функцією з додаванням параметрів масштабування 'f1' або 'f1', 'f2', в ролі яких можуть виступати plot, semilogx, semilogx, loglog:

>> x=0:0.01:12*pi;

>> plotyy(x,sin(x).*exp(-0.1.*x),x, 10*exp(-0.1.*x))

Приклад виконання зображено на рис 5.









Рис 5. Реалізація приведеного прикладу

 

Розглянемо трьохвимірні графіки

графіка візуалізація презентаційний екран

У тривимірній графіці виконуються представлення функції z = z (x, y), що відрізняються способом з'єднання точок: лінія, перетину, сітчаста або суцільна поверхня.(x, y, z) в тих же варіаціях, що і plot, припускає завдання одновимірних і двовимірних масивів (будуються точки з координатами x (i, :), y (i, :), z (i, :) для кожного стовпця і з'єднуються прямими лініями. Якщо використовується [x, y] = meshgrid (...), то будуються перетину.

>> t=0:pi/50:10*pi;

>> plot3(sin(t),cos(t),t)


Рис. 6 Реалізація приведеного прикладу

>> [x,y]=meshgrid([-2:0.1:2],[-2:0.01:2]);

>> z=exp(-x.^2-y.^2);

>> plot3(x,y,z)

Приклад побудови графіків функцій зображено на рис.7

Рис.7. Приклад графіка, функції plot3

(x, y, z, c), mesh (z, c), mesh (z) визначають завдання сітчастої поверхні (масив визначає кольори вузлів поверхні; якщо x, y не вказани, то x = 1: n, y = 1: m, де [m, n] = size (z).

>> [x,y]=meshgrid(-8:0.5:8);

>> t=sqrt(x.^2+y.^2)+0.001;

>> z=sin(t)./t;

>> mesh(x,y,z)

Приклад побудови графіків функцій зображено на рис. 8

Рис.8. Приклад графіка, функції mesh

Аналогічна функція meshс на додаток до поверхні будує проекції ліній рівня, а meshz робить зріз поверхні до нульового рівня (своєрідний п'єдестал).

>> meshc(x,y,z)

Приклад побудови графіка функцій зображено на рис.8.1











Рис.8.1. Приклад графіка, функції meshc

>> meshz(x,y,z)

Приклад побудови графіка функцій зображено на рис.8.2










Рис.8.2. Приклад графіка, функції meshz

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

Реалізація тривимірної графіки може супроводжуватися безліччю допоміжних команд, наприклад:on / off включає або вимикає режим видалення невидимих ​​ліній (за замовчуванням on);faceted / flat / interp встановлює затінення поверхонь (за замовчуванням faceted дає рівномірне забарвлення осередків з чорними гранями, flat - квітами вузлів сітки, interp - інтерполяцією квітів.

Завдання осей координат


Створення графічного об'єкта виходить автоматично при зверненні до команд, що породжує об'єкти Line і Surface, але може виконуватися і командою axec ('<ім'я властивості>', <значення>, ...). Є й команди більш високого рівня:([xmin xmax ymin ymax]), axis ([xmin xmax ymin ymax zmin zmax]) встановлює масштаб по осях;off / on вимикає (включає) висновок на координатні осі позначень та маркерів;on / off, grid включає (вимикає) або перемикає режим нанесення координатної сітки на осях;on / off, box включає (вимикає) або перемикає режим малювання контуру паралелепіпеда, тривимірний об'єкт;on / off включає (вимикає) режим інтерактивного масштабування графіків (ліва миша близько точки збільшує масштаб вдвічі, права - зменшує; утриманням лівої миші можна виділити прямокутну область для детального перегляду; zoom out відновлює вихідний графік.

Лінії рівня


На відміну від meshс (...) і surfс (...) функція contour малює тільки лінії рівня відповідних поверхонь і виступає в різноманітті синтаксичних форм: contour (X, Y, Z) - для масиву Z = Z (X, Y) , contour (X, Y, Z, n) - то ж із зазначенням числа ліній рівня (за замовчуванням 10), contour (X, Y, Z, v) - то ж для масиву зазначених значень; contour (Z), contour (Z, n), contour (Z, v) - аналогічні функції без вказівки діапазонів для аргументів і contour (..., LineSpec) - аналогічні функції c зазначенням типу і кольору ліній (див. plot); [C, h] = contour (...) повертає масив с і вектор дескрипторів, дозволяючи тим самим продовжити роботу з малюнком (давати оцифровку ліній, заголовки та ін.)

Функція contourf (...) зафарбовує області між лініями рівня, аналогічна contourf (...) з різницею в форматі [C, h, cf] = contour (...), де cf визначає матрицю розмальовки.

>> [x,y]=meshgrid(-8:0.5:8);

>> t=sqrt(x.^2+y.^2)+0.001;

>> z=sin(t).^3./t;

>> [c,h]=contour(x,y,z,20);

Приклад побудови лінії рівня зображено на рис.9








Рис.9 Приклад лінії рівня contour

>> [x,y]=meshgrid(-2:0.25:2);

>> t=sqrt(x.^2+y.^2)+0.001;

>> z=sin(t).^3./t;

>> [c,h,cf]=contourf(x,y,z,4);

Приклад побудови лінії рівня зображено на рис.10








Рис.10 Приклад лінії рівня contourf

Функція contour3 (...) по синтаксису повністю аналогічна contour (...), але зображує не проекції ліній рівня, а малює їх у просторової інтерпретації; так команда [c, h] = contour3 (x, y, z, 20) ; дає фігуру (рис.11)

Рис.11 Приклад прсторові лінії рівня contour3

Додаткові можливості


Створення нового графічного вікна figure; командою figure (n) можна вибирати деякий із створених вікон в якості поточного.

Включення (виключення) режиму збереження поточного графіка:on / off, hold.

Висновок заголовків для графіків (у поточному вікні): title ('текст'), title (<ім'я функції-рядки> '), title (...,' Property-Name ',' PropertyValue ', ...), h = title (...).

Висновок графіків в декількох вікнах малюнка: subplot (m, n, k), subplot (mnk) - m - число вікон по горизонталі, n - по вертикалі, k - номер вікна:

>>subplot(121)

>> plot([1:0.3:4])

>> subplot(122)

>> plot([4:-0.3:1])

>> title ('y=4-0.3(x-1)')

Приклад графіків в кількох вікнах зображено на рис.12










Рис.12 Графік в кількох вікнах

Виведення тексту для позначення координатної осі: xlabel (...), ylabel (...), zlabel (...) - синтаксис аналогічний title (...).

Виведення тексту в зазначеній позиції графіка: text (x, y, 'текст'), text (x, y, z, 'текст'), text (... 'PropertyName', 'PropertyValue', ...), h = text (...).) - x, y, z-координати початку тексту.

Виведення тексту під управлінням миші: gtext ('текст'), h = gtext ('текст') - виведений текст можна переміщати мишею.

Висновок легенди legend ('Текст1', 'Текст2', ...), legend (M), legend (h, M), legend off, legend (..., pos), h = legend (...) - тут М - рядковий масив (довжина рядків однакова), off видаляє пояснення до графіку, pos визначає позицію легенди (-1 - праворуч від графіка, 0 - в одному з 4 кутів із мінімумом втрат точок графіка, 1-4 - у вказаному кутку, [xy] - у вказаному місці); можна перетягувати легенду мишею.

>> subplot(111)

>> t=[0:pi/30:2*pi];

>> a=sin(t); b=cos(t);

>> x=0:60;

>> plot(x,a+b),hold on

>> hp=plot(x,a', 'g', x,b','r'); set(hp,'LineWidth',2)

>> legend('a+b','a=sin(t)','b=cos(t)')

Приклад реалізації зображено на рис.13

Рис.13 Реалізація прикладу

Маркування ліній рівня, створюваних функціями contour, contour3, contourf: clabel (C, h), clabel (C, h, v), clabel (C, h, 'manual'), clabel (C), clabel (C, v) , clabel (C, 'manual') - за наявності h маркування на лініях, при наявності 'manual' - примусова маркування натисканням лівої миші або пробілу (права миша або Return завершує маркування).

Список використаної літератури

1. http://www.exponenta.ru/soft/matlab/potemkin/book2/chapter10/contens.asp

2. <http://vtit.kuzstu.ru/books/shelf/158/doc/glava9.html>

Похожие работы на - Графічні команди та функції

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!