我正在尝试创建一个程序,该程序采用 y=mx+b 形式的用户输入字符串,并使用输入的方程绘制一条线。我唯一不满意的是这个单一的问题:如何获取计算的 x 和 y 值并将它们放在 g.drawLine 参数中?
public void paint(Graphics g){
g.drawLine(x,y,x2,y2);
g.setColor(Color.black);
}
您可以定义一个具有 m、b 等实例变量的 Line 类,并让其paint 或 display 方法使用这些变量绘制一条线。然后,从该类中创建一个 Line 对象并在该类中调用其绘制方法(将图形对象作为参数传递)。这将有一个额外的好处,如果您想绘制多条线,您可以只创建多个 Line 对象并调用它们的每个绘制方法。
主要是这样的:
public void paint(Graphics g) {
myLine.paint(g);
...
...在 Line 类中:
public void paint(Graphics g) {
g.drawLine(myx1, myy1, myx2, myy2);
....
编辑:如果您想要一个非常快速的解决方案并且不需要使程序可扩展,您还可以将行的属性存储为主类的静态变量。那看起来像:
class Main {
static int lineInformation;
void userInputMethod() {
lineInformation = ... // the user input
...
}
public void paint(Graphics g) {
g.drawLine(lineInformation,...);
...
}
}
不过,我肯定会再次为您以后使用或修改的程序推荐一个 Line 类。
一份粗略的清单
-y + height
如果您希望它在我们向上移动时随着 y 的增长而绘制成图表,您需要采取这将确保线条填充组件的区域:
double m= ...
double b= ...
double x=g.getClipBounds().x;
double x2=g.getClipBounds().x+g.getClipBounds().width;
g.drawLine(x,m*x+b,x2,m*x2+b);