QT----绕某点旋转后的坐标变换

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.引用如下:

借鉴:(49条消息) 一个点绕某个定点旋转a角后的坐标计算,推导_洋航的博客-CSDN博客_某个点绕定点旋转一定角度后的坐标icon-default.png?t=M85Bhttps://blog.csdn.net/u013407012/article/details/103765446?spm=1001.2014.3001.5506 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值