【发布时间】:2013-05-09 06:48:37
【问题描述】:
我正在制作一个在用户单击屏幕时绘制椭圆的程序。当前绘制椭圆时,原点为 (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);
}
【问题讨论】:
-
我已经尝试过我认为可行的方法,但是当我点击屏幕时,椭圆被画得离我点击的地方很远
-
请参阅
javatag wiki 中的 Java 命名约定。 -
我打赌你的 mX 和 mY 是不正确的,它们要么没有被设置,要么它们是绝对值,而它们确实应该相对于你正在绘制的窗格
-
我刚刚检查过,它们肯定被设置并且值是正确的(我在 draw 方法中使用了 system.out.println(mX))
标签: java awt draw java-2d affinetransform