在鼠标点击java周围绘制ellipse2d

时间:2013-05-14 20:44:09

标签: java awt draw java-2d affinetransform

我正在创建一个程序,在用户点击屏幕时绘制省略号。目前,当绘制椭圆时,原点为(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);
    }

1 个答案:

答案 0 :(得分:2)

  

g2.translate(mX,mY);

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

g2.translate(mX - (mWidth / 2), mY - (mHeight / 2));