使用java GUI绘制函数

时间:2012-11-22 22:42:10

标签: java user-interface

我需要绘制给定起点和终点的多项式。我已经看过使用paincomponent来做这件事,但我感到困惑,因为原点在左上角,我需要我的网格线是动态的。

我如何制作它以便创建动态比例以及最适合用于绘制函数的java类?

例如,如果用户输入-2 2 x ^ 2,则绘图仪需要创建一个网格,从-2到中间为0,右边为2,为x坐标。但是,如果用户输入x ^ 3,我们在y平面上有负坐标,我需要将包含x坐标的直线滑动到适应位置。

谢谢!

2 个答案:

答案 0 :(得分:0)

如果您知道要绘制的区域的大小,则转换y坐标应该不会太困难。但说实话,为什么不使用JFreeChart之类的绘图库?...

答案 1 :(得分:0)

我认为你可以做到这一点(我可能错了)的方法是绘制图形的y线和x线,并使用drawString在正确的位置标记x和y的值。 为了说明这一点,我为你做了这个例子:

public void paintComponent(Graphics g)
{
    Graphics2D g2 = (Graphics2D) g;

    Point2D.Double from = new Point2D.Double(300, 100);
    Point2D.Double to = new Point2D.Double(300, 300);

    Line2D.Double line = new Line2D.Double(from, to);
    g2.draw(line);

    Point2D.Double from2 = new Point2D.Double(150, 200);
    Point2D.Double to2 = new Point2D.Double(450, 200);
    Line2D.Double line2 = new Line2D.Double(from2, to2);
    g2.draw(line2);

    g2.drawString("-1", 290, 215);
}

drawString方法会在0以下绘制“-1”。所以你可以使用相同的东西在-1以下绘制-2等等。

我知道这听起来效率低下,但这是我能想到的唯一方法。

希望其他人能为您提供更好的解决方案。