好的我一直在尝试旋转位于图像顶部的矩形。我有一个显示图像的Scrollable类。我可以在图像上绘制矩形。我的问题是在旋转图像时尝试旋转矩形。矩形丢失并放在错误的位置。
我已经尝试起诉Graphics2D,AffineTransform,createTransformedShape()但没有运气。
我现在要做的是手动旋转矩形。我正在尝试使用以下公式获得矩形点(x,y):
double rectX = (Math.cos(Math.toRadians(90)) * (x - anchorX) - Math.sin(Math.toRadians(90)) * (y - anchorY)) + anchorY;
double rectY = (Math.sin(Math.toRadians(90)) * (x - anchorX) - Math.cos(Math.toRadians(90)) * (y - anchorY)) + anchorY;
如何使用Java找到anchorX和anchorY值?我已尝试将图像高度跳过2,但不适用于所有旋转角度。我必须得到JPanel的宽度和高度吗?是否有Java用于查找锚点的公式?
答案 0 :(得分:1)
如果你想让它像一个横跨顶部的盒子,你必须找到行进方向的底角。如果你向右滚动,你需要在右下角。
答案 1 :(得分:1)
我不确定目标,但我看到了两种可能的替代方法:
使用逆变换,如here所示。
将竖直图像和矩形渲染为BufferedImage
并旋转合成图像,如图here所示。