-2

我正在制作一个在用户单击屏幕时绘制椭圆的程序。当前绘制椭圆时,原点为 (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);
    }
4

1 回答 1

2

g2.translate(mX, mY);

我猜 mX 和 mY 是点击鼠标的点。所以你的翻译不可能是那个确切的点。也许是这样的:

g2.translate(mX - (mWidth / 2), mY - (mHeight / 2));
于 2013-05-14T22:05:45.073 回答