我正在创建一个程序,在用户点击屏幕时绘制省略号。目前,当绘制椭圆时,原点为(0,0),因此它是从右上角绘制的。我希望它是在鼠标点击周围绘制的,因此中心正是用户点击的位置,但我不知道该怎么做。如果有人能引导我朝着正确的方向前进,那就太棒了!
public void DrawSprite( Graphics2D g2 )
{
AffineTransform tOldTransform = g2.getTransform();
g2.setColor(SetSpriteColor());
g2.translate(mX, mY);
g2.rotate(mRotation*(Math.PI/180));
g2.draw(new Ellipse2D.Double(0, 0, mWidth, mHeight));
g2.setTransform(tOldTransform);
}
答案 0 :(得分:2)
g2.translate(mX,mY);
我猜mX和mY是点击鼠标的点。所以你的翻译不能那么精确。也许是这样的:
g2.translate(mX - (mWidth / 2), mY - (mHeight / 2));