Java - 旋转矩形 2D 并设置长度



我正在尝试围绕点旋转矩形并动态设置其长度。这是我到目前为止所拥有的:

Rectangle2D myRect = new Rectangle2D.Double(point.x - GameValues.ROPE_WIDTH, point.y, point.x + GameValues.ROPE_WIDTH, point.y + ropeLength);
    AffineTransform at = AffineTransform.getRotateInstance(
            Math.toRadians(rotation - 180), point.x, point.y);
    rope = at.createTransformedShape(myRect);

当我绘制形状时,它的行为不符合预期,矩形宽度会随着我移动点而变化。如何正确执行此操作?

你误解

了Rectangle2D的定义。对于 Rectangle2D,我建议设置一个与点(直接)无关的长度,然后使用仿射变换来缩放它。

问题是Rectangle2D并没有像你想象的那样在(x1,y1)和(x2,

y2)之间定义;它是(x1,y1)和(Δx,Δy)或偏移量。

更改您的代码以使用它:

Rectangle2D myRect = new Rectangle2D.Double(point.x, point.y, GameValues.ROPE_WIDTH, ropeLength);

或者它的某种排列,你应该清楚。

相关内容

  • 没有找到相关文章

最新更新