我使用DrawOval函数在Java项目中的一点上方绘制一个圆:

g2d.drawOval(instruction.getX(), instruction.getY(), instruction.getWidth(), instruction.getHeight());


问题是我的圆被绘制成目标点在圆的外面而不是在中心。

我试图说明左边发生的事情以及我想在右边发生的事情:



我没有Java绘图经验,如何解决这个问题?

最佳答案

椭圆在给定点处绘制,因此它的顶部,左角在x / y位置。您需要将x / y偏移一半的宽度/高度...

int width  = instruction.getWidth();
int height = instruction.getHeight();
g2d.drawOval(instruction.getX() - (width / 2), instruction.getY() - (height / 2), width, height);


检查Graphics#drawOval了解更多详细信息

10-04 13:13