3

Graphics 2D クラスの drawRect(int x, int y, int width, int height) メソッドと、rotate(double theta, double x, double y) メソッドの使用方法を理解しようとしています。

私がやりたいことは、JPanel に正方形を描画して回転させることです (すべてマウスを使用します)。したがって、この手順は次のようになります - 1 をクリックします (ポイント 1 (P1) の座標が得られます - これは正方形の 1 つの角です)、マウスを動かします (マウスの位置はポイント 2 (P2) の座標を与えます - これは正方形の反対側の角)、正方形を回転させます (ここでも、マウスの位置はポイント 2 の座標を示します)。クリック 2 (ポイント 2 はこのクリックによって更新され、四角形の最終的な場所です)

私の理解と質問は次のとおりです。

P1.x と P1.y は、rotate メソッドで使用される値であることを理解しています。P1 は回転のポイントです。また、rotate メソッドの theta が回転角度であることも理解しています。

drawRect メソッドの幅と高さが正方形に等しくなければならないことは理解していますが、ここで混乱し始めます。

私の質問は次のとおりです。

1) drawRect メソッドの x と y は何 (および JPanel の場所に関して) であり、状況に応じてそれらをどのように解決するのですか? (正方形の左上隅だと思っていたのですが、P2を左上にドラッグするとややこしいです)

2) P1 と P2 からシータを計算するにはどうすればよいですか?

(注:これはメリットです。クリックとマウスの動きを処理するために MouseAdapter メソッドを使用しています)

4

1 に答える 1