一、旋转点坐标映射公式
(1)逆时针旋转:
x'=x*cos(a)-y*sin(a);
y'=x*sin(a)+y*cos(a);
(2)正向映射公式,同时引入旋转中心平移:
x'= (x - rx0)*cos(RotaryAngle) + (y - ry0)*sin(RotaryAngle) + rx0 ;
y'=-(x - rx0)*sin(RotaryAngle) + (y - ry0)*cos(RotaryAngle) + ry0 ;
(3)反向映射公式:
x=(x'- rx0)*cos(RotaryAngle) - (y'- ry0)*sin(RotaryAngle) + rx0 ;
y=(x'- rx0)*sin(RotaryAngle) + (y'- ry0)*cos(RotaryAngle) + ry0 ;
(4)加入考虑坐标平移和缩放:
x=(x'- move_x-rx0)/ZoomX*cos(RotaryAngle) - (y'- move_y-ry0)/ZoomY*sin(RotaryAngle) + rx0 ;
y=(x'- move_x-rx0)/ZoomX*sin(RotaryAngle) + (y'- move_y-ry0)/ZoomY*cos(RotaryAngle) + ry0 ;
二、公式推导
假设对图片上任意点(x,y),绕一个坐标点(rx0,ry0)逆时针旋转a角度后的新的坐标设为(x0, y0),有公式:
x0= (x - rx0)*cos(a) - (y - ry0)*sin(a) + rx0 ;
y0= (x - rx0)*sin(a) + (y - ry0)*cos(a) + ry0 ;
在平面中,一个点绕任意点旋转θ度后的点的坐标_百度经验 https://jingyan.baidu.com/article/2c8c281dfbf3dd0009252a7b.html
[1]: 在平面中,一个点绕任意点旋转θ度后的点的坐标_百度经验 https://jingyan.baidu.com/article/2c8c281dfbf3dd0009252a7b.html