当从中心旋转矩形时,我通常只使用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(),我仍然不知道如何获得它所面对的方向,因为它没有从中心旋转。
答案 0 :(得分:0)
考虑到您的矩形只有一个旋转变换,您只需从变换中获取信息:
for (Transform transform : rectangle.getTransforms()) {
if (transform instanceof Rotate) {
return ((Rotate)transform).getAngle();
}
}