如何从枢轴点旋转矩形后得到矩形的方向(角度)

时间:2012-01-10 04:57:41

标签: trigonometry javafx-2

当从中心旋转矩形时,我通常只使用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(),我仍然不知道如何获得它所面对的方向,因为它没有从中心旋转。

1 个答案:

答案 0 :(得分:0)

考虑到您的矩形只有一个旋转变换,您只需从变换中获取信息:

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