Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中找到定位点/旋转点?_Java_Swing_Trigonometry - Fatal编程技术网

如何在Java中找到定位点/旋转点?

如何在Java中找到定位点/旋转点?,java,swing,trigonometry,Java,Swing,Trigonometry,好的,我一直在尝试旋转一个位于图像顶部的矩形。我有一个显示图像的可滚动类。我可以在图像的顶部绘制矩形。我的问题是在旋转图像时尝试旋转矩形。矩形丢失并放置在错误的位置 我已经试过起诉Graphics2D、AffineTransform、createTransformedShape(),但没有成功 我现在要做的是手动旋转矩形。我尝试使用以下公式获得矩形点(x,y): double rectX = (Math.cos(Math.toRadians(90)) * (x - anchorX) - Math

好的,我一直在尝试旋转一个位于图像顶部的矩形。我有一个显示图像的可滚动类。我可以在图像的顶部绘制矩形。我的问题是在旋转图像时尝试旋转矩形。矩形丢失并放置在错误的位置

我已经试过起诉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有没有一个公式可以用来找到锚点?

如果你想让它像一个盒子一样在顶部滚动,你必须找到移动方向的下角。如果要向右滚动,则需要右下角。

我不确定目标,但我看到两种可能的替代方法:

  • 使用逆变换,如图所示

  • 如图所示,将竖直的图像和矩形渲染为矩形,并旋转合成图像