Я создал класс сетки ниже. Я хочу построить график функции f (x) = 1 / x, но я понятия не имею, как построить график чего-либо. Я хочу, чтобы мой драйвер запрашивал у пользователя функцию x, и я хочу, чтобы сетка GUI визуально и медленно создавала кривую, подобную тому, как графические калькуляторы функционируют на графике.
import javax.swing.*;
import java.awt.*;
import java.awt.geom.*;
public class Grid extends JPanel {
final double spacing = 20;
public Grid() {
setBackground(Color.WHITE);
}
private void lines(Graphics2D g2, double x1, double y1, double x2, double y2) {
g2.draw(new Line2D.Double(x1, y1, x2, y2));
}
public void paint(Graphics g) {
super.paint(g);
final double width = getWidth();
final double height = getHeight();
final double xaxis = width / 2.0;
final double yaxis = height / 2.0;
final double x1 = 0;
final double y1 = 0;
final double x2 = width;
final double y2 = height;
Graphics2D g2 = (Graphics2D) g;
g2.setColor(Color.GRAY);
g2.setStroke(new BasicStroke(1));
for (double x = spacing; x < width; x += spacing) {
lines(g2, xaxis + x, y1, xaxis + x, y2);
lines(g2, xaxis - x, y1, xaxis - x, y2);
}
for (double y = spacing; y < height; y += spacing) {
lines(g2, x1, yaxis + y, x2, yaxis + y);
lines(g2, x1, yaxis - y, x2, yaxis - y);
}
g.setColor(Color.BLACK);
g2.setStroke(new BasicStroke(2));
g2.draw(new Line2D.Double(x1, yaxis, x2, yaxis));
g2.draw(new Line2D.Double(xaxis, y1, xaxis, y2));
}
public static void main(String args[]) {
JFrame window = new JFrame("Grid");
window.add(new Grid());
window.setVisible(true);
window.setSize(600, 600);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}