2

给定以下内容的Java中绘制矩形的方法是什么:

  • 正方形中心的坐标
  • 矩形与垂直方向的角度,以度为单位
4

2 回答 2

5

要以您建议的方式绘制矩形,您需要使用 class AffineTransform。该类可用于以各种方式转换形状。要执行旋转使用:

int x = 200;
int y = 100;
int width = 50;
int height = 30;
double theta = Math.toRadians(45);

// create rect centred on the point we want to rotate it about
Rectangle2D rect = new Rectangle2D.Double(-width/2., -height/2., width, height);

AffineTransform transform = new AffineTransform();
transform.rotate(theta);
transform.translate(x, y); 
// it's been while, you might have to perform the rotation and translate in the
// opposite order

Shape rotatedRect = transform.createTransformedShape(rect);

Graphics2D graphics = ...; // get it from whatever you're drawing to

graphics.draw(rotatedRect);
于 2012-12-21T15:16:52.567 回答
0

对于第一点,您可以通过使用距离公式计算出正方形中心的坐标,(int)Math.sqrt((x1 - x2)*(x1 - x2) + (y1 - y2)*(y1 - y2));它们除以 2。您可以对宽度和高度执行此操作。我对 Java draw 的了解还不够,无法根据您的问题为您提供更好的答案,但我希望这会有所帮助。

其次,您只需要创建一个多边形,对吗?

于 2012-12-21T14:51:31.917 回答