java - 用线连接点以创建折线图

标签 java graph points

你好,我对java相当陌生,并且已经被这个问题困扰了一段时间,所以希望有人能够拯救我。基本上我正在创建一个可以绘制方程式的程序,现在我正在测试-10和10之间的x^2。我可以在正确的位置绘制点,但我不知道如何填写点之间的点,因此它看起来像一个真实的图表。

这是我的代码:

import java.util.Scanner;
import javax.swing.JFrame;
import java.awt.*;

class PlotGraph extends JFrame{


public void paint(Graphics l){

    l.drawLine(50, 300, 550, 300); //x axis
    l.drawLine(300, 550, 300, 50); //y axis
    //Orignin x = 300 y = 300

    int xmin, xmax, y, tmin, tmax;
    xmin =(-10);
    xmax = 10;
    int x_bet, y_bet;

    while(xmin<=xmax){
        y = 300-(xmin*xmin);
        l.drawLine(xmin+300, y, xmin+300, y);

        //while(x_bet>xmin){
        //l.drawLine(, , , );
        //}

        xmin++;
    }



}

public static void main(String [] args) {

    PlotGraph graph = new PlotGraph();
    graph.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    graph.setSize(600, 600);
    graph.setVisible(true); 
    graph.setTitle("PlotGraph");

}


}

最佳答案

另一种方法是创建一个 GeneralPath,如下所示。

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

class PlotGraph extends JFrame{

    public void paint(Graphics l){

        l.drawLine(50, 300, 550, 300); //x axis
        l.drawLine(300, 550, 300, 50); //y axis

        int xmin, xmax, y, tmin, tmax;
        xmin =(-10);
        xmax = 10;
        int x_bet, y_bet;
        GeneralPath gp = new GeneralPath();

        y = 300-(xmin*xmin);
        gp.moveTo((double)xmin+300, (double)y);
        while(xmin<=xmax){
            y = 300-(xmin*xmin);
            gp.lineTo((double)xmin+300, (double)y);

            xmin++;
        }

        Graphics2D g2 = (Graphics2D)l;
        g2.setColor(Color.RED);
        g2.draw(gp);
    }

    public static void main(String [] args) {
        PlotGraph graph = new PlotGraph();
        graph.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        graph.setSize(600, 600);
        graph.setVisible(true);
        graph.setTitle("PlotGraph");
    }
}

这个来源仍然有问题:

  1. GUI 更新应在 EDT 上完成。
  2. 自定义绘制最好在 JPanel/JComponent 中完成,或者在 JLabel 中显示的 BufferedImage 中完成。
  3. “图表组件”应声明首选尺寸,而不是设置框架的尺寸。

关于java - 用线连接点以创建折线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15319230/

相关文章:

Java 泛型函数 : how to return Generic type

java - TextView 未放置在屏幕的一半下方

java - Java 中的图形数据库(Neo4J 除外)

algorithm - 从一组二维点中找到最大的矩形网格图案

python - 如何在 python 代码中添加点

java - jaas.conf 中未选取 KafkaClient 部分

java - 线程中出现异常 "main"org.hibernate.HibernateException : hibernate. cfg.xml 未找到

c - 判断无向图是否是树

python - Networkx 度数方法没有产生 want 我认为是

gis - Google Earth Engine 上的栅格到点转换 : how to convert every single pixel?