1.问题:B点绕A点旋转a°后变为点C,求点C的坐标。
2.思路:基本的旋转是围绕原点旋转的----这个是易于计算的,所以只要把旋转中心平移到原点,得出平移后的坐标B'。此时绕原点旋转角度a得出C’;照原路平移,即得出旋转后点C的坐标。
3.数学推导:
解:先做平移,使A移到原点O,相应的B移到B',先求B'饶O顺时针旋转a角度后的C'点坐标,再讲该坐标平移得到C点坐标,即为所求。B'(x1-x0,y1-y0),角BAC=角B'OC'=a,设角B'Ox=b, |OB'|=r
则b=arctan[(y1-y0)/(x1-x0)] = arcsin[(y1-y0)/r] = arccos[(x1-x0)/r],(取那种表示方式视计算方便而定)
角C'Ox=a+b,则C'点坐标为(rcos(a+b),rsin(a+b) )
cos(a+b)=cosa*cosb-sina*sinb = (x1-x0)/r *cosa - (y1-y0)/r *sina
sin(a+b)=sina*cosb+cosa*sinb = (x1-x0)/r *sina + (y1-y0)/r *cosa
所以C’(x2',y2')为:
x2' = (x1-x0)*cosa - (y1-y0)*sina
y2' = (x1-x0)*sina + (y1-y0)*cosa
将C'按向量(x0,y0)平移得到C(x2,y2):
x2 = (x1-x0)*cosa - (y1-y0)*sina + x0
y2 = (x1-x0)*sina + (y1-y0)*cosa + y0
4.引用如下: