Категории:

  • Программирование


  • Изобразительное искусство


  • Программирование встраиваемых систем


  • Компьютерная графика


  • WEB Разработка


  • Музыка


  • Инженерия


  • iVARIOUS


  • Mobil App


  • Java. Графики функций

    Java Перейдем к более практичным задачам. В ранее рассматриваемых статьях достаточно информации чтоб сделать программу которая выводит графики функций. Основная задача и самая трудная, это придумать алгоритм построения графиков, а также перемещения по нему и других полезных методов визуализации. Приложение будет графическим, поэтому будут использоваться библиотеки swing и awt для его визуализации. Для начала рассмотрим код, потом разберемся что к чему:

    // Главный класс с которого начинается программа Graph_26_02

    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Component;
    import java.awt.Container;
    import java.awt.FlowLayout;
    import java.awt.Graphics;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    public class Graph_26_02 extends JFrame{

    buttonpanel btp= new buttonpanel();

    static Graph_26_02 gp;
    scale sc=new scale();
    RadioBut rb=new RadioBut();

    Graph_26_02() {

    super("Graphics Function");
    Container head_container = getContentPane();
    Container container_graph = new Container();
    head_container.setLayout(new BorderLayout());
    sc.setSize(800,800);
    container_graph.add(sc);
    head_container.add(container_graph,BorderLayout.CENTER);
    head_container.add(rb,BorderLayout.SOUTH);
    head_container.add(btp,BorderLayout.NORTH);
    setSize(850,900);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setResizable(false);
    setVisible(true);
    }
    public static void repaintf(){
    gp.repaint();
    }
    public static void main(String[] args) {
    gp=new Graph_26_02();
    }
    }


    Класс buttonpanel создает кнопки, и применяет к ним "слушаетелей" которые будут реагировать на события.


    public class buttonpanel extends JPanel{

    eventbut evtb = new eventbut();
    static JButton plus=new JButton("zoom +");
    static JButton minus=new JButton("zoom -");
    static JButton left=new JButton("<<");
    static JButton right=new JButton(">>");
    static JButton top=new JButton("top");
    static JButton down=new JButton("down");
    static JButton hight=new JButton("vertex +");
    static JButton lower=new JButton("vertex -");
    static JButton reset=new JButton("reset");

    FlowLayout flbutton=new FlowLayout();
    buttonpanel(){
    setLayout(flbutton);

    this.add(left);
    left.addActionListener(evtb);
    this.add(plus);
    plus.addActionListener(evtb);
    this.add(top);
    top.addActionListener(evtb);
    this.add(down);
    down.addActionListener(evtb);
    this.add(minus);
    minus.addActionListener(evtb);
    this.add(right);
    right.addActionListener(evtb);
    this.add(hight);
    hight.addActionListener(evtb);
    this.add(lower);
    lower.addActionListener(evtb);
    this.add(reset);
    reset.addActionListener(evtb);
    }

    }



    Класс RadioBut будет отображать выбраный график.


    public class RadioBut extends JPanel{

    eventbut eb=new eventbut();

    JRadioButton pr=new JRadioButton("Parabola");
    JRadioButton hp=new JRadioButton("Hiperbola");
    JRadioButton ln=new JRadioButton("Line");

    RadioBut(){
    this.add(ln);
    ln.addActionListener(eb);
    this.add(pr);
    pr.addActionListener(eb);
    this.add(hp);
    hp.addActionListener(eb);
    }
    }



    В следующей статье, мы рассмотрим классы содержащие алгоритм построения графиков.

    Читайте больше в категории: Программирование

    2016-04-16 15:32:31



    Другие статьи:

    Психология: как рождается музыка.

    Java. Списки ArrayList и LinkedList

    WinAPI. График Функций.

    Maya. bend, sine, squash, twist, wave, flare.

    JavaScript. Объекты

    PHP. Передача параметров в ссылке. $_GET

    Java

    JavaScript. Создание, поиск и удаление элементов

    STM32. Работа с акселерометром

    Maya. Сглаживание Smooth и по нормалям