机器视觉入门之路(十四,图像旋转原理,c++)
接上节,如果MG直线不围绕原点O旋转,而是围绕(2,2)点旋转,该怎么办?
假定M(3,4),G(5,2),那么直线MG相对(2,2)点坐标是(1,2)和(3,0)
那么,以(2,2)点为原点,M(1,2)和G(3,0)旋转,利用公式:
=
就搞定了,要注意的是这是M(1,2)和G(3,0)针对(2,2)旋转,得到M'G',
M'=;G'=
那么M'G'在原点坐标系是多少呢?
对了,加上(2,2)即可,+
;
+
这就是MG围绕(2,2)点旋转后的坐标。
所以点(x0,y0)围绕任一点(a,b)旋转=(x,y)公式如下:
+
=
特殊的是(a,b)=(0,0),+
=
,即
=
特殊的是(a,b)=(x0,y0),=
=
这个是什么意思呢?线段MG,M=(x0,y0),那么就是说,线段MG围绕M旋转。
如上图,G围绕M旋转,C,R也围绕M旋转,那么,矩形mgrc围绕M旋转,我们就可以搞定。
有没有我们博客里线图像工具设计的感觉?