java 绕某点旋转_计算某点围绕目标点旋转一定角度后的新坐标

这可以说是一道数学题,我讲一下我碰到这个题目的背景。

f89480d5840360255cb54e3ac371a9ef.png

如上图所示,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点旋转任意角度后的新坐标。

c495d697fad515be26c662575ded351a.png

我的思路是,先计算围绕原点旋转的情形,先出A点与X轴正方向的夹角α,然后旋转β到B点,他离X轴正方向的角度为θ,由此我们根据圆的三角方程,x=r*cosθ,y=r*sinθ,可以算出B点坐标。绕原点的算出来了,绕目标点的很简单,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值