我如何使用先前计算的x和y值并将它们放入G.DrawLine参数中



我正在尝试创建一个程序,该程序在y = mx b form中以用户输入的字符串形式使用,并使用该输入的方程式来绘制线路。我唯一没有拒绝的是这个单一问题:如何将计算出的x和y值放在g.drawline参数中?

    public void paint(Graphics g){
    g.drawLine(x,y,x2,y2);
    g.setColor(Color.black);
}

您可以定义一个具有M,B等实例变量的行类,并使用这些变量绘制其油漆或显示方法绘制线路。然后,从该类中制作一个线对象,并在该类中调用其油漆方法(将图形对象传递为参数)。这将具有一个额外的优势,如果您想绘制多个线路,您只能制作多个行对象并调用他们的每种油漆方法。

类似的东西:

public void paint(Graphics g) {
    myLine.paint(g);
    ...

...在线类中:

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,...);
        ...
    }
}

再次,我绝对会建议您以后使用或修改程序的程序类。

的粗略列表
  1. 从字符串中提取M和B。
  2. 插入x的插入0,并使用(x,y)对第一个点
  3. 插入X的宽度,并将其用于第二点
  4. 如果您希望随着我们的前进,您需要服用-y + height

这将确保该行填充组件的区域:

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);

相关内容

  • 没有找到相关文章

最新更新