java 线绕点旋转_给定两个顶点围绕中心点旋转线

点(x1,y1)和(x2,y2)之间的线段的中心点(cx,cy)的坐标是:

cx = (x1 + x2) / 2

cy = (y1 + y2) / 2

换句话说,它只是两对x和y坐标值的平均值或算术平均值 .

对于多分段线或折线,其逻辑中心点的x和y坐标只是所有点的x和y值的对应平均值 . 平均值只是值的总和除以它们的数量 .

原点(0,0)周围的通用公式为rotate a 2D point(x,y)θ弧度:

x′ = x * cos(θ) - y * sin(θ)

y′ = x * sin(θ) + y * cos(θ)

要围绕不同的中心(cx,cy)执行旋转,需要通过首先从点的坐标减去所需旋转中心的坐标来调整点的x和y值,这具有移动的效果(已知)在几何中作为translating it)在数学上表达如下:

tx = x - cx

ty = y - cy

然后将该中间点旋转所需的角度,最后将旋转点的x和y值加回到每个坐标的x和y . 从几何学角度来说,它是以下操作顺序: Translate → Rotate → Untranslate

这个概念可以扩展到允许围绕任意点旋转整条折线 - 例如它自己的逻辑中心 - 只需将描述的数学应用到其中每个线段的每个点 .

为了简化该计算的实现,所有三组计算的数值结果可以组合并用一对数学公式表示,这些公式同时执行它们 . 因此,通过使用以下方法旋转点(cx,cy)周围的现有点(x,y),θ弧度,可以获得新点(x',y')ÿ

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值