2011-06-20 20 views
0

我scalling的形狀爲一個特定點如下:如何獲得一個縮放形狀的新高度在Java中

   AffineTransform t = shape.getAffineTransform(); 

       AffineTransform translatAffine =AffineTransform.getTranslateInstance(-cx, -cy); 
       AffineTransform scaleAffine= AffineTransform.getScaleInstance(sx,sy); 
       scaleAffine.concatenate(translatAffine); 
       translatAffine = scaleAffine; 

       scaleAffine =AffineTransform.getTranslateInstance(cx, cy); 
       scaleAffine.concatenate(translatAffine); 
       translatAffine = scaleAffine;     

       scaleAffine= new AffineTransform(t); 
       translatAffine.concatenate(scaleAffine); 
       shape.setAffineTransform(translatAffine); 

當我試着使用shape.getHeight()得到新的高度,我得到的初始高度

+1

什麼類型是「形狀」? – Atreys

+0

@trashgod:是的,但Shape接口似乎沒有getTransform,setAffineTransform或getHeight方法,所以這個例子沒有意義。 – Atreys

+0

:)我同意你的例子@trashgod。我只是想知道OP是在宣佈他的形狀變量是什麼類。它看起來像是一個Graphics2D與更改方法名稱和Rectangle的組合。 – Atreys

回答

0

我通過獲取affineTransform並計算新的高度,找到了一個工作。我在以上代碼中添加了以下代碼行

System.out.println("The new height :"+ shape.getHeight() * shape.getAffineTransform().getScaleX()); 
相關問題