2012-01-10 143 views
1

我通常在從中心旋轉矩形時使用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

考慮您只有一個旋轉變換爲您的矩形你可以得到的信息變換:

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