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) 并且您想要绘制 (height, width) = (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 回答