如何从旋转点获得矩形的方向(角度)
问题描述:
我通常在从中心旋转矩形时使用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();
}
}