1

drawOval(x,y,width,height) メソッドの使用に問題があります。このメソッドは、x 値と y 値が「描画される楕円の左上隅」の座標を表すと想定しています ( javadoc ) 。

x と y の値が円の中心点を表すようにします。どうすればいいですか?ありがとう

4

1 に答える 1

2

幅/高さが事前に宣言されている場合、簡単な解決策は、drawOval次のようにメソッドを使用することです。

drawOval( x - (width/2), y - (height/2), width, height);

これにより、(x, y) が楕円の中心にあることが保証されます。

なんで?

(x, y) が (10, 10) で、(高さ, 幅) = (10, 10) の楕円を描きたいとしましょう。

drawOval(x, y, height width);

次に、楕円の右上を(10, 10) に描画し、左下を (10 + 10, 10 + 10) = (20, 20)に描画します。

一方、使用する場合

drawOval( x - (width/2), y - (height/2), height, width);

楕円の右上は ( 10 - (10/2), 10 - (10/2) ) = (5, 5)で描画され、下は (5 + 10, 5 + 10) で描画されます。 = (15, 15) . 中心は(10、10)になります:)

于 2012-04-18T23:09:24.557 に答える