我需要绘制一个给定起点和终点的多项式。我已经研究过使用 paincomponent 来做到这一点,但我很困惑,因为原点位于左上角,我需要我的网格线是动态的。
如何制作它以便我可以创建动态比例以及最适合绘制函数的 java 类?
例如,如果用户要输入 -2 2 x^2,绘图仪将需要创建一个从 -2 开始的网格,中间有 0,右边有 2 作为 x 坐标。但是,如果用户输入 x^3,我们在 y 平面上有负坐标,我需要将包含 x 坐标的线向上滑动以适应。
谢谢!
我需要绘制一个给定起点和终点的多项式。我已经研究过使用 paincomponent 来做到这一点,但我很困惑,因为原点位于左上角,我需要我的网格线是动态的。
如何制作它以便我可以创建动态比例以及最适合绘制函数的 java 类?
例如,如果用户要输入 -2 2 x^2,绘图仪将需要创建一个从 -2 开始的网格,中间有 0,右边有 2 作为 x 坐标。但是,如果用户输入 x^3,我们在 y 平面上有负坐标,我需要将包含 x 坐标的线向上滑动以适应。
谢谢!
如果您知道要绘制的区域的大小,那么转换 y 坐标应该不会太难。但老实说,您为什么不使用 JFreeChart 之类的绘图库之一,...?
我认为你可以这样做(我可能错了)的方法是绘制图形的 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,等等。
我知道这听起来效率低下,但这是我能想到的唯一方法。
希望其他人能为您提供更好的解决方案。