2013-05-14 148 views
-2

我正在制作一个程序,当用户单击屏幕时绘制省略号。目前当绘制椭圆时,原点是(0,0),因此它是从右上角绘制的。我希望它能够围绕鼠标点击,然后中心就是用户点击的位置,但我不知道如何去做。如果有人能引导我朝着正确的方向发展,那就太棒了!在鼠标点击绘制ellipse2d java

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

我已经试过了,我想通会的工作,但是当我点击屏幕椭圆绘制真正远离,我点击 – user2150807

+0

请参阅Java命名约定在['java'标记wiki](http://stackoverflow.com/tags/java/info)。 – wchargin

+0

我敢打赌,你的mX和mY是不正确的,他们要么没有设置,要么他们是绝对值,当他们真的应该是相对于你正在绘制的窗格 – greedybuddha

回答

2

g2.translate(MX,MY);

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

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

作品像一个魅力,非常感谢你 – user2150807

+0

嗨。教师在这里的任务。也许你在课堂上玩LoL,但无论如何,你都可以问我。 – CBGraham