2014-06-22 73 views
0

我想用AffineTransform創建一個簡單的矩形。這裏有點什麼我想要做...在矩形上使用AffineTransform

AffineTransform at = new AffineTransform(); 
at.transform(width/2, height/2); 

switch(direction){ 
case 1: 
    return new Rectangle(at, width, height); 
case 2: 
    return new Rectangle(at, width*2, height*2); 
} 

我不知道如何,或者如果可以,使用AffineTransform創建一個矩形。如果有人知道如何做到這一點,請分享您的信息。

+0

[快速瀏覽'Rectangle' Javadoc建議你不能傳入'AffineTransform'作爲(http://docs.oracle.com/javase/7/docs/api/java/awt/Rectangle.html)通過從'AffineTransform'中提取需要的位可以更好地服務於直接將它們插入「矩形」。 – Makoto

+0

嘗試'createTransformedShape()',提到[這裏](http://stackoverflow.com/q/23644698/230513)。 – trashgod

回答

0

在應用AffineTransform之後,Rectangle不再是普通的Rectangle。然而,Rectangle源自Rectangle2D,其實施Shape

而AffineTransform可以通過createTransformedShape方法將Shape轉換爲新的Shape

如果您想要AffineTransform的全部功能,那麼這是最好的方法。你可以畫一個Shape,測試點是否落在它的內部或外部,將它變成一個Area等。