这可以说是一道数学题,我讲一下我碰到这个题目的背景。
如上图所示,A可以看成我们的显示器屏幕,向右为x正方向,向下为y正方向,屏幕中有一个矩形B,他是屏幕A的子,D点为B在屏幕A中的坐标,C点为矩形B中的一点。现在对矩形B进行旋转,如旋转90度,那C点坐标为多少呢?
其实如果C点是属于矩形B的话,旋转B时,C点会自动进行旋转,C点相对D点的坐标是不变的,并不需要我们额外处理,当如果C点不是属于B,但旋转B时,又要保持C相对B的位置不变呢?其实这里就是求C点相对D点旋转一定角度后的新坐标,一直D点坐标,C点坐标(全局坐标),求C点绕D点旋转任意角度后的新坐标。
我的思路是,先计算围绕原点旋转的情形,先出A点与X轴正方向的夹角α,然后旋转β到B点,他离X轴正方向的角度为θ,由此我们根据圆的三角方程,x=r*cosθ,y=r*sinθ,可以算出B点坐标。绕原点的算出来了,绕目标点的很简单,