【发布时间】:2014-10-14 14:57:31
【问题描述】:
我了解如何使用 MouseMotionListener,但我无法正确设置用于绘制矩形和椭圆形的参数。
这是我对矩形的尝试,但问题是如果从起点向左走,矩形会被填满。
public void draw(Graphics g) {
g.drawRect((int)startPoint.getX(), (int)startPoint.getY(),(int)controlPoint.getX() - (int)startPoint.getX(), (int) controlPoint.getY() - (int)startPoint.getY());
}
这是我的圈子方法,这似乎工作正常。但是我不能把它改成椭圆形。
public void draw(Graphics g) {
g.drawOval((int)startPoint.getX() - (int)controlPoint.distance(startPoint),((int)startPoint.getY() - (int)controlPoint.distance(startPoint)),
(int)controlPoint.distance(startPoint)*2,(int)controlPoint.distance(startPoint)*2);
}
mousePressed 必须是圆心(startPoint),拖动应该是椭圆的半径。
【问题讨论】:
-
drawRect和drawOval都期望x, y, width, height...您的开始 x 或开始 y 可能小于结束 x 或结束 y 的位置。所以你需要弥补这一点......
标签: java graphics awt mouseevent