Scaling/Translating a Shape to a given Rectangle using AffineTransform

后端 未结 2 1306
梦如初夏
梦如初夏 2020-12-02 00:54

I\'m trying to scale/translate a java.awt.Shape with AffineTransform in order to draw it in a defined bounding Rectangle.

Moreover,

2条回答
  •  天涯浪人
    2020-12-02 01:49

    Inspired by trashgod's answer, the correct sequence was:

    AffineTransform transforms[]=
    {
    AffineTransform.getScaleInstance(zoom, zoom),
    AffineTransform.getTranslateInstance(viewRect.getX(),viewRect.getY()),
    AffineTransform.getScaleInstance(ratioW, ratioH),
    AffineTransform.getTranslateInstance(-bounds.getX(),-bounds.getY())
    };
    
    
    
    AffineTransform tr=new AffineTransform();
    for(int i=0;i< transforms.length;++i)
     {
     tr.concatenate(transforms[i]);
     }
    

提交回复
热议问题