1

ユーザーが入力した文字列を y=mx+b 形式で取得し、その入力された方程式を使用して線をグラフ化するプログラムを作成しようとしています。私が不満を持っていないのは、この 1 つの問題だけです: 計算された x 値と y 値を取得して g.drawLine パラメーターに配置するにはどうすればよいですか?

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

3 に答える 3

1

m、b などのインスタンス変数を持つ Line クラスを定義し、それらの変数を使用してその paint または display メソッドに線を描画させることができます。次に、そのクラスから Line オブジェクトを作成し、その中で paint メソッドを呼び出します (グラフィックス オブジェクトをパラメーターとして渡します)。これには、複数の線を描画したい場合に、複数の 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 クラスをお勧めします。

于 2012-10-29T01:40:09.190 に答える
0

やるべきことの大まかなリスト

  1. 文字列から m と b を抽出します。
  2. x に 0 を挿入し、その (x,y) ペアを最初のポイントに使用します。
  3. x の幅をプラグインし、その結果を 2 番目のポイントに使用します。
  4. -y + height上に移動するにつれてyが成長するようにグラフ化する場合は、取る必要があります
于 2012-10-29T01:38:30.913 に答える
0

これにより、線がコンポーネントの領域を埋めるようになります。

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);
于 2012-10-29T01:48:24.293 に答える