Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.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_Math - Fatal编程技术网

Java 旋转矩形后获得一个点

Java 旋转矩形后获得一个点,java,math,Java,Math,我有一个精灵,我知道它的位置和后面的矩形。 我想知道精灵后面的位置,我知道偏移量 我的观点是: Point p=new Point(sprite.getX()-offset,sprite.getY()-sprite.getHeight()/2); 如果我围绕其中心原点旋转精灵,我希望获得该点的新位置 可以更好地解释以下内容的图像: 查看Libgdx上的Sprite源代码,在getVertices()上,有计算,但在本地,这可能会有所帮助 这样很有用 在Wolfram MathWorld或Wi

我有一个精灵,我知道它的位置和后面的矩形。 我想知道精灵后面的位置,我知道偏移量

我的观点是:

Point p=new Point(sprite.getX()-offset,sprite.getY()-sprite.getHeight()/2);
如果我围绕其中心原点旋转精灵,我希望获得该点的新位置

可以更好地解释以下内容的图像:


查看Libgdx上的Sprite源代码,在getVertices()上,有计算,但在本地,这可能会有所帮助

这样很有用


在Wolfram MathWorld或Wikipedia(例如)上查找该类的文档以及任意数量的源代码。在Java中,您的精灵可能会使用
仿射变换类在旋转的帧中进行渲染,因此如果您仔细应用变换,您甚至不必自己做任何额外的数学运算来获得尾随点的位置。

在这个api中,精灵类有一个获得旋转的方法,查看该文档是否有用

您需要提供旋转中心(保持固定的点)的坐标


如果你不给我们一个线索,告诉我们什么不起作用也很好…

(我正在使用这个,但不太合适)double sx=((line.getStartX()-circle.getCenterX())*Math.cos(rotation))-((line.getStartY()-circle.getCenterY())*Math.sin(rotation))+circle.getCenterX()@杰伊:这句话也适用于你:“告诉我们什么不起作用也很好,因为你没有给出任何线索……”我只想知道两件事1)如何获得角度,2)这个角度是辐射度或度数1)如何获得角度:从什么角度获得???2) 辐射角度或角度:就像数学要求一样,我在Game Maker Studio 2中使用了这个,但我必须做(360度),然后将角度转换为弧度,否则它会朝错误的方向旋转。
xnew = x * cos(angle) - y * sin(angle)
ynew = y * cos(angle) + x * sin(angle)
X' = (X - Xc) * cos(A) - (Y - Yc) * sin(A) + Xc
Y' = (Y - Yc) * cos(A) + (X - Xc) * sin(A) + Yc