需要画一个沿运动方向旋转的图片(旋转应该是相对于图片中心的):
例子:
我知道 x 和 y 的速度,图片的位置(x,y),图片的大小(宽度和高度),以及我绘制的字段的大小
我试过这样:
Graphics2D g = (Graphics2D) gr;
g.rotate(Math.toRadians(Math.atan(vx/vy))); // vx,vy - скорость по x и y
g.fillRect((int)(x-w/2), (int) (y-h/2), w, h); // Это я потом заменю на картинку
但是图片没有相对于中心旋转并且旋转错误
细节:
- 我在一个方法中画了一个JPanel
paint(Graphics gr) - 我使用 Graphics2D
Math.atan需要一种态度y/x,但这不是那么重要,因为见下文Math.atan必须替换为Math.atan2(vy, vx)才能获得整个范围内的角度结果
Math.atan/atan2已经是弧度了,如果rotate需要弧度就不需要转换了围绕某一点旋转,
(cx, cy)仿射变换矩阵的构建如下:在 Graphics2D 中,我看到了一个被覆盖的方法: