Побудова графіків функцій на основі візуального інтерфейсу аплетів Java

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

Спробуймо навчитися будувати графіки, використовуючи аплети Java. Відразу слід зазначити, що існує безліч платних і безкоштовних бібліотек, що реалізують різні прийоми побудови графіків. Наприклад, така відома річ, як jfreechart. Але наше завдання – розібратися із принципами побудови графіків із використанням стандартного інструментарію.

Для малювання графіка необхідно вирішити, де він буде в принципі розташовуватися. Не ускладнюватимемо завдання і намалюємо наш графік безпосередньо на «поверхні» основного вікна аплету. Для цього використовуємо клас Graphics. При запуску аплету використовуємо метод paint безпосередньо малювання графіка. Наш початковий код виглядатиме приблизно так:

import java.applet. *;

import java.awt. *;

public class MyAppletextends Applet

public void paint(Graphics g)

Цей код створить порожнє вікно аплету. Тепер потрібно намалювати графік. Спершу треба згадати принципи малювання на екрані, які загалом практично однакові будь-якої мови програмування. Верхня ліва точка екрана (у нашому випадку – вікна аплета) є нулем декартової двовимірної системи координат. Негативні точки за замовчуванням на екрані не відображаються (що природно), позитивний напрямок x – вправо, y – вниз (рис.7). Це дещо не збігається із звичним виглядом декартової системи координат.

функцій

Для початку потрібно вирішити, якого розміру буде наш графічний аплет. Нехай розмір буде 800 на 800 пікселів. Відразу ж намалюємо осі координат. Нехай вісь абсцис знаходиться посередині (координата y = 400), а вісь ординат-на 10 пікселів від лівого краю екрана (координата x = 10). Для малювання ліній використовуємо метод drawLine. Аргументи методу – 4 координати (x0, y0, x1, y1), що задають дві точки. Відповідно, на контейнері буде намальовано відрізок, що проходить через дві точки. Код, що задає розмір контейнера-аплета та осі координат, буде виглядати так:

this.setSize(800, 800);

g.drawLine(10, 0, 10, 800);

g.drawLine(0, 400, 800, 400);

Тепер перейдемо безпосередньо до малювання графіка. Нехай буде графік функції 350* cos (0.05*x). Для виклику математичної функції використовується клас Math. Оскільки він входить у стандартний пакет Java, його не потрібно підключати за допомогою інструкції import. При виклику функції потрібно уважно дивитися тип аргументів нею і у разі потреби наводити тип. Так, функція cos класу Math, як і більшість інших функцій, працюють із аргументами типу double. Ми будемо підставляти як аргумент змінну циклу, проте вона буде цілісного типу (int). У цьому випадку нас рятує те, що ми множимо аргумент на 0.05, що автоматично приведе результат типу double. Однак малювати графік будемо за допомогою того ж методу drawLine, а його аргументи мають бути цілими. Для цього доведеться наводити результат до типу int. Для перебору значень аргументу x організуємо цикл за допомогою інструкції for. Отже, код для побудови власне графіка функції:

for (int i=1; i