/*
* 原始坐标系的点转换到当前坐标系的点(可能旋转、移动、镜像过)
*/
transforPoint: function (px, py) {
if (!this._transform) {
return;
}
var x = px, y = py;
var m = this._transform;
px = x * m[0] + y * m[2] + m[4];
py = x * m[1] + y * m[3] + m[5];
return { x: px, y: py };
},
/*
* 当前状态是(旋转、移动、镜像)过的,变换到原始坐标系
*/
deTransforPoint: function (px, py) {
var x = px, y = py;
var m = this._transform;
if (0 == m[2]) {
return {
x: ((x - m[4]) / m[0]),
y: ((y - m[5]) / m[3])
}
}
px = (m[2] * (y - m[5]) - x * m[3] + m[4] * m[3]) / (m[1] * m[2] - m[0] * m[3]);
py = (x - m[4] - px * m[0]) / m[2];
return { x: px, y: py };
}