我正在尝试创建一个程序,该程序在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,...);
...
}
}
再次,我绝对会建议您以后使用或修改程序的程序类。
- 从字符串中提取M和B。
- 插入x的插入0,并使用(x,y)对第一个点
- 插入X的宽度,并将其用于第二点
- 如果您希望随着我们的前进,您需要服用
-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);