0

我需要绘制一个给定起点和终点的多项式。我已经研究过使用 paincomponent 来做到这一点,但我很困惑,因为原点位于左上角,我需要我的网格线是动态的。

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

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

谢谢!

4

2 回答 2

0

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

于 2012-11-22T23:36:23.943 回答
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,等等。

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

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

于 2012-11-23T00:13:22.723 回答