Построение графиков java код

How to plot Graph in java

In this tutorial, we will learn how to draw a graph using Java. The drawing graph means plotting coordinates on a Cartesian plane. Co-ordinate is a combination of ordinate and abscissa ie(abscissa, ordinate). We can plot Graph using core Java using several topics ie. panels, graphics, AWT (Abstract Window Toolkit), etc.

To plot a graph in Java

First of all, we will import all the required packages. The Required packages are

we import swing package for the use of JButtons, JPanel, JLabel, etc.

We import awt package, awt acronyms for Abstract Window Toolkit, awt enables the user to make a graphical user interface for front-end of the project.

We import awt.geom package for performing operations related to two-dimensional geometry. Two-dimensional geometry refers to geometry in which we use only the x-axis and y-axis. In three Dimensional geometry, we use three, x-axis, y-axis, z-axis.

Code

import java.awt.*; import javax.swing.*; import java.awt.geom.*; public class G extends JPanel< int[] coordinates=; int mar=50; protected void paintComponent(Graphics g) < super.paintComponent(g); Graphics2D g1=(Graphics2D)g; g1.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON); int width=getWidth(); int height=getHeight(); g1.draw(new Line2D.Double(mar,mar,mar,height-mar)); g1.draw(new Line2D.Double(mar,height-mar,width-mar,height-mar)); double x=(double)(width-2*mar)/(coordinates.length-1); double scale=(double)(height-2*mar)/getMax(); g1.setPaint(Color.BLUE); for(int i=0;i> private int getMax()< int max=-Integer.MAX_VALUE; for(int i=0;imax) max=coordinates[i]; >return max; > public static void main(String args[]) < JFrame frame =new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(new G()); frame.setSize(400,400); frame.setLocation(200,200); frame.setVisible(true); >>

ABOUT OUR PROJECT

G is the name of the class created, coordinates is the array of points to be plotted on the graph. We are extending JPanel to use it for representing the graph. JPanel is the light-weight container that is invisible. The default Layout of the panel is Flow-Layout. There are several layouts some of them are

  1. grid layout
  2. grid bag layout
  3. flow layout
  4. box layout
  5. border layout
  6. card layout
  7. group layout
  8. spring layout

But flow layout is the default layout for the panel.

Functions and methods used in the project

We are using super.paintComponent(g), as we use the super keyword for calling parent class constructor or parent class method, And in this case, JPanel is the parent class.

Читайте также:  Prepared statement php like

Graphic 2D class again extends Graphics class to provide control over geometry. This is a fundamental class for two-dimensional shapes.

RenderingHints are the suggestions to the Java 2D about how it should perform its rendering.

In general, rendering means the way something is performed.

setRenderingHints() refer to the new set of hints that replaces the old ones.

We use Antialiasing for smoothing of the jagged edges in case of very low resolutions.

g1.draw() method is used to draw lines representing the x-axis and y-axis. Four coordinates are used to draw line (x1,y1,x2,y2).

Method setpaint() method is used to set the color to the points which we are plotting on the graph.

We calculate the value of co-ordinates using the method.

In for loop, we are using coordinates.length(), it is the method used to find the length of the array ie. coordinates.

The methods getWidth() and getHeight() are the methods of component that we use to return the height and width of the component we are using.

And x1 and y1 are the variables, that we use to plot points with respect to the size of the component instead of the cartesian plane.

The setting of size and layout of the Frame

The frame is the object of JFrame and further, we perform four operations ie.

  • setLocation to set the location of the frame.
  • setDefaultClose Operation to close the frame.
  • setVisible to set the visibility of the frame.
  • setSize to set the size of the frame.

The output result will show a graph like you can see below:

Источник

Создание графика по точкам на Java

Сегодня мы научимся рисовать графики по точкам на языке Java. Для этого напишем небольшую программку, результат её вы можете увидеть на рисунке слева. Как можно увидеть, приложение в стиле минимализм — просто оси и график. При желании можно дополнить её названиями осей, пронумеровать их и так далее — этим мы займемся тогда, когда будем делать графики по функциям, а сейчас и так сойдет — нам главное разобраться со способом. А вот, собственно, и сам текст программы:

package up7; import javax.swing.*; import java.awt.*; class DrawingComponent extends JPanel < int xg[] = Up7.x; int yg[] = Up7.y; int ng = Up7.n; @Override protected void paintComponent(Graphics gh) < Graphics2D drp = (Graphics2D)gh; drp.drawLine(20, 340, 20, 20); drp.drawLine(20, 340, 460, 340); drp.drawPolyline(xg, yg, ng); >> public class Up7 extends JFrame< public static int x[] = ; public static int y[] = ; public static int n = 5; public Up7 () < super("График по точкам"); JPanel jcp = new JPanel(new BorderLayout()); setContentPane(jcp); jcp.add(new DrawingComponent (), BorderLayout.CENTER); jcp.setBackground(Color.gray); setSize(500, 400); setLocationRelativeTo(null); setDefaultCloseOperation(EXIT_ON_CLOSE); >public static void main(String[] args) < new Up7().setVisible(true); >>

Немного комментариев по листингу. В программе два класса — сама отрисовка происходит в DrawingComponent — он наследуется от JPanel, а вот значения для отрисовки задаются в классе Up7 — он наследуется от JFrame. Задаем мы три параметра — два массива со значениями по осям x, y и число точек. Точки соединяются прямыми — в этом помогает метод drawPolyline.

Читайте также:  Css убрать тень кнопки css

Вот так несложно можно создать график функции по точкам на Java. Комментарии, вопросы — на почту up777up@yandex.ru.

Автор этого материала — я — Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML — то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

заметки, java, графики, задачи

Бесплатный https и
домен RU в подарок

Источник

Графика в Java. Graphics

Графику в Java обслуживают классы Graphics и Graphics2D.

Работа с графикой осуществляется в графическом контексте элементов, унаследованных от класса Component. Понимать это можно так: на элементах управления, например, JFrame, JPanel, JButton и других, есть возможность рисовать. Такие элементы обладают графическим контекстом, в этом контескте мы и рисуем. Всё, что нарисуем в контексте будет показано на элементе. Классы Graphics и Graphics2D нужны для работы с графическим контекстом. Мы должны получить экземпляр такого класса и, используя его методы, рисовать. Получить экземпляр контекста можно в методе paint:

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

Начнём изучать работу с графикой в Java с класса Graphics.

Graphics

Рассмотрим простой пример использования методов класса Graphics в Java:

Графика в Java

Получаем:

Ниже разбираются все методы, использованные в примере.

Как начертить прямую линию?

Метод drawLine класса Graphics начертит прямую линию:

здесь 20, 30 — это координаты x, y начала линии,
360, 30 — координаты конца линии.

Как задать цвет?

Метод setColor класса Graphics сделает текущим новый цвет:

// Запоминаем исходный цвет;
Color oldColor = g.getColor();
// Создаём синий цвет;
Color newColor = new Color(0, 0, 255);
// Устанавливаем синий цвет;
g.setColor(newColor);
// Чертим линию синим цветом;
g.drawLine(20, 30, 360, 30);
// Восстанавливаем исходный цвет;
g.setColor(oldColor);

Аргументы конструктора new Color(0, 0, 255) — это красный, зелёный и синий цвета соответственно (rgb).

Как задать rgb цвета? В примере задан чисто синий цвет, т.к. значения других составляющих равны нулю. Вот чисто красный цвет:

Значения составляющих цвета изменяются от 0 до 255.

Светло-синий цвет, который мы использовали для заливки прямоугольника:

Как задать цвет фона?

Задать цвет фона можно методом setBackground:

Как нарисовать прямоугольник?

Методом drawRect класса Graphics:

20, 40 — это координаты верхнего левого угла прямоугольника;
340 — длина;
20 — высота прямоугольника.

Читайте также:  Python работа с ini

Как залить прямоугольник цветом?

Методом fillRect класса Graphics:

newColor = new Color(0, 215, 255);
g.setColor(newColor);
g.fillRect(21, 41, 339, 19);
g.setColor(oldColor);

Как нарисовать прямоугольник с закругленными углами?

Методом drawRoundRect класса Graphics.

Сопряжение, т.е. закругление на углах, делается с помощью частей овала.

первые 4 аргумента как у обычного прямоугольника. Пятый аргумент — 20 — это ширина прямоугольника, в который вписана часть овала сопряжения. Шестой аргумент — 15 — это высота прямоугольника, в который вписана часть овала сопряжения.

Как нарисовать овал?

Методом drawOval класса Graphics:

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

Как нарисовать окружность?

Методом drawOval класса Graphics:

Аргументы определяют прямоугольник, в который вписана окружность. Здесь рисуем овал, но длина и высота описанного прямоугольника равны, что и даёт окружность.

Как нарисовать дугу?

Методом drawArc класса Graphics:

первые 4 аргумента как у обычного прямоугольника. Пятый аргумент — 0 — это угол, от которого отсчитывается угол самой дуги. 180 — это угол дуги. Углы отсчитывают от горизонтальной оси: по часовой стрелке отрицательное направление, протв — положительное. В примере 180 градусов (величина дуги) отсчитываем от горизонтальной линии.

Как нарисовать многоугольник?

Методом drawPolygon класса Graphics:

Здесь создаём объект класса Polygon. arrayX — это х-координаты вершин многоугольника, arrayY — это y-координаты вершин многоугольника, 8 — число вершин многоугольника.

Как создать объект точки?

Для этого используем класс Point:

аргументы — это x, y координаты.

Как определить, что точка принадлежит многоугольнику?

Polygon poly = new Polygon(arrayX, arrayY, 8);
g.drawPolygon(poly);
Point aPoint = new Point(50, 190);
if(poly.contains(aPoint))
g.drawString(«Yes», 50, 190);
>

Используем метод класса Polygon contains для определения лежит ли точка в многоугольнике.

Как вывести строку?

Методом drawString класса Graphics:

строка «Yes» будет выведена от точки с координатами 50, 190.

Как задать шрифт?

Для этого используем класс Font:

где «Tahoma» — название шрифта,
Font.BOLD|Font.ITALIC — жирный шрифт с наклоном,
40 — высота шрифта.

После задания шрифта мы делаем его текущим и выводим строку этим шрифтом:

Как задать цвет текста?

Чтоб задать цвет текста создадим и установим в графический контекст новый цвет:

Здесь мы создали чисто синий цвет. А теперь выводим строку синим цветом:

Как начертить график?

Как график функции начертить? Сначала начертим координатные оси:

// Draw axes;
g.drawLine(20, 220, 20, 350);
g.drawLine(20, 350, 360, 350);
g.drawString(«Y», 25, 230);
g.drawString(«X», 350, 346);

А теперь построить график функции можно просто. Для этого используем метод drawPolyline класса Graphics:

// Draw a curve;
int[] xArray = ;
int[] yArray = ;
int nPoint = 10;
g.setColor(newColor);
g.drawPolyline(xArray, yArray, nPoint);
g.setColor(oldColor);
g.drawString(«y = f(x)», 180, 267);

График строим по точкам, xArray – это x-координаты точек, yArray – y-координаты точек графика, nPoint — это число точек.

Наш график являет собой кривую намагничивания. Но почему график такой угловатый (см. картинку выше)? Если взять больше точек, то график будет более плавным.

Источник

Оцените статью