четвер, 12 липня 2012 р.

Графіка в Java

http://www.sbp-program.ru/java/sbp-graphics.htm
Графіку в Java обслуговують класи Graphics і Graphics2D. Робота з графікою здійснюється в графічному контексті елементів, успадкованих від класу Component. Розуміти це можна так: на елементах управління, наприклад, JFrame, JPanel, JButton та інших, є можливість малювати. Такі елементи мають графічний контекст, в цьому контескте ми і малюємо. Все, що намалюємо в контексті буде показано на елементі. Класи Graphics і Graphics2D потрібні для роботи з графічним контекстом. Ми повинні отримати примірник такого класу і, використовуючи її методи, малювати. Отримати примірник контексту можна в методі paint:

public void paint(Graphics g);

цей метод успадковується з класу Component. Аргумент Graphics g створюється системою, а ми беремо його у готовому вигляді і використовуємо для малювання. При створенні елемента метод paint буде викликаний автоматично.

Почнемо вивчати роботу з графікою в Java з класу Graphics.

Шаблон для роботи з графікою в аплеті класу MyShape


import java.awt.*;
import javax.swing.*;

public class MyShape extends JApplet{
    public void paint(Graphics g) {
    super.paint(g);
   //тут вводимо команди для малювання геометричних фігур наведені в прикладах
    
    }
}

Вивод тексту

Шаблон 
g.drawString(str, x, y);
Приклад
g.drawString("проба   ", 100, 140); // виводимо текст

Задаємо колір

 g.setColor(Color.blue);//

Лінія


Шаблон g.drawLine(x1, y1, x2, y2); //x1, y1 -початкова точка  x2, y2 - кінцева точка
Приклад
g.drawLine(5, 25, 350, 30);//лінія

Прямокутник

Шаблон  g.fillRect(x, y, width, height);
Приклад 
g.fillRect(5, 35, 200, 50);

Заокруглений прямокутник

Шаблон  g.fillRoundRect(x, y, width, height, arcWidth, arcHeight);
Приклад 
g.fillRoundRect(5, 50,200, 10, 50, 50);//прямокутник закруглений

Овал та Коло

Шаблон  g.drawOval(x, y, width, height);
Приклад
        g.drawOval(25, 25, 100, 50);//овал стиснутий
        g.setColor(Color.blue);// задаємо колір
        g.drawOval(25, 25, 50, 100);//овал витягнутий
        g.fillOval(130, 50, 40, 80);//заповнений овал
        g.drawOval(250, 250, 100, 100);//якщо width=height то маємо коло

Багатокутники

Багатокутники можна будувати двома способами
І спосіб через масив точок
Задаємо два масиви точок, один для x, другий для y, і тоді даємо команду
g.drawPolygon(xPoints, yPoints, nPoints);
Приклад
int x[]={10,50,100,150,100};
int y[]={10,150,170,150,50};
g.drawPolygon(x, y, 5); // 5 - точок в багатокутнику
ІІ спосіб через масив об'єкт Polygon
        Polygon pol= new Polygon(); //створюємо об'єкт pol
        //pol.addPoint(arg0, arg1); додаємо точки багатокутника
        pol.addPoint(10, 20);
        pol.addPoint(20, 30);
        pol.addPoint(40, 20);
        pol.addPoint(40, 10);
       
        g.fillPolygon(pol); //виведе заповнений багатокутник
        g.drawPolygon(pol); //виведе тільки сторони многокутника


Ламана

Будується аналогічно до багатокутників  командою drawPolyline g.drawPolyline(xPoints, yPoints, nPoints);

Приклад 

Будуємо графік функції у=x2

        //(0,0)->(220,350) переміщаємо початок координат
        g.drawString("Y", 225, 80);
        g.drawLine(220, 70, 220, 350);//вісь У
        g.drawString("X", 350, 346);
        g.drawLine(20, 350, 360, 350);//вісь Х
       
        int nPoint = 120;
        int[] xArray = new int [nPoint+1];
        int[] yArray = new int [nPoint+1];
        int i=0;
        for (double x=-4;x<=4;x=x+0.1){
            xArray[i]=220+(int)(x*20);
            yArray[i]=350-(int)(x*x*20);
            i++;
        }
        g.setColor(Color.blue);
        g.drawPolyline(xArray, yArray, i);
        g.drawString("y = f(x)", 280, 267);       
       

Немає коментарів:

Дописати коментар