该算法来自于标准Java类库,位于java.awt.geom,是awt UI package中的工具类。Lengend Engine使用的AffineTransform类,是去除了一些无用的内容后得到的。该算法使用了很多优化手段。
仿射变换 / Affine transformation
百度百科参考:http://baike.baidu.com/view/954621.htm
缩放
[ sx 0 0 ]
[ 0 sy 0 ]
[ 0 0 1 ]
平移
[ 1 0 tx ]
[ 0 1 ty ]
[ 0 0 1 ]
错切
[ 1 shx 0 ]
[ shy 1 0 ]
[ 0 0 1 ]
旋转
[ cos(theta) -sin(theta) 0 ]
[ sin(theta) cos(theta) 0 ]
[ 0 0 1 ]
算法:
[ x'] [ m00 m01 m02 ] [ x ] [ m00x + m01y + m02 ]
[ y'] = [ m10 m11 m12 ] [ y ] = [ m10x + m11y + m12 ]
[ 1 ] [ 0 0 1 ] [ 1 ] [ 1 ]