如何从旋转点获得矩形的方向(角度)

问题描述:

我通常在从中心旋转矩形时使用setRotate(double value)和getRotate()。假设如果getRotate()为0,矩形面向北,我试图获取它的方向,我只是得到getRotate()的负数,并从360获得它的余数(如果它是负数,我加360)。这意味着0度的角度朝向北,并且使其顺时针旋转一度使其成359度(同样,逆时针旋转一度使其成为1度)。如何从旋转点获得矩形的方向(角度)

public double angle(){ 
     double angle = -rectangle.getRotate(); 
     if(angle<0){ angle += 360; } 
     return angle%360; 
    } 

但是,我现在的问题是,我需要旋转矩形不是从它的中心,而是从一个枢轴点。我不能再使用setRotate(double value)和getRotate(),所以我必须使用getTransforms()。add(new Rotate(double angle,double pivotX,double pivotY))。

现在,我的问题是,我想知道矩形所在的方向的角度,但我不能再使用getRotate()。即使我使用旋转中的getAngle(),我仍然不知道如何获取它所面对的方向,因为它并未从中心旋转。

考虑您只有一个旋转变换为您的矩形你可以得到的信息变换:

for (Transform transform : rectangle.getTransforms()) { 
    if (transform instanceof Rotate) { 
     return ((Rotate)transform).getAngle(); 
    } 
}