使用中心点(不是左上角)绘制椭圆

时间:2012-08-21 09:47:23

标签: java graphics2d

我试图找到一个基于中心点绘制椭圆的解决方案,而不是在Ellipse2D.Double的构造函数中指定的左上角。如图所示,椭圆应具有相同的中心点和比例,是否有可能?

enter image description here

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:6)

如果(x,y)是您要使用的中心,并且您只能指定左上角,请使用以下内容:

private Ellipse2D getEllipseFromCenter(double x, double y, double width, double height)
{
    double newX = x - width / 2.0;
    double newY = y - height / 2.0;

    Ellipse2D ellipse = new Ellipse2D.Double(newX, newY, width, height);

    return ellipse;
}

如果使用中心点以及宽度和高度调用,则会将您的中心点“转换”到左上角并创建一个Ellipse2D,其位置与您希望的一样。