美文网首页
两点间连线围绕其中一个点旋转一定角度之后的角度或线

两点间连线围绕其中一个点旋转一定角度之后的角度或线

作者: 杨闯 | 来源:发表于2020-03-29 23:22 被阅读0次

    在无意之中,想到了一个问题:
    知道两个点,一个点是(x_1, y_1),另外一个点是(x_2, y_2),然后想让他俩之间的连线绕着点(x_1, y_1)逆时针旋转一定的角度θ,怎么能够求得旋转后的方向上的任意一个点的坐标。

    最后有几种方法,其中一个方法是直接计算,另外一个方法是求得原来的角度再加上旋转的角度求得最后的线,求原来角度的时候,有的是通过arctan进行求得,有的是通过arcsin或arccos求得,如果有哪里不对,敬请指正

    首先设两个点分别是 (x_1y_1)和(x_2y_2

    sinα = \frac{y_2-y_1}{\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}} = β
    cosα = \frac{x_2 - x_1}{\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}} = Ω

    直接计算的算法

    基本思路是:
    1、旋转后的角度为 α + β
    2、可以求得
    x'_2 = x_1 + c × cos(α + β) = x_1 + c × (cosα ×cosβ - sinα ×sinβ)
    y'_2 = y_1 + c × sin(α + β) = y_1 + c × (sinα ×cosβ +cosα × sinβ)

    需要求α的算法

    直接求α

    α = arctan \frac{y_2 - y_1}{ x_2 - x_1 }

    推导求

    y_2y_1进行比较 (sin结果) x_2x_1进行比较(cos结果) 象限位置
    > > 第一象限
    > = 垂直向上
    > < 第二象限
    = > 水平向右
    = = 两点重合
    = < 垂直向下
    < > 第四象限
    < = 垂直向下
    < < 第三象限

    针对以上结果,完全水平活完全垂直的不做任何的计算,那么我们需要对第一、二、三、四象限的进行计算处理。

    象限 α的结果
    arcsin β 或 arccos Ω
    π - arcsinβ 或 arccos Ω
    \frac{π}{ 2 } - arcsinβ 或 π + (π - arccos Ω) = 2π - arccos Ω
    arcsin β 或 - arccos Ω

    求得具体的α之后加上θ角度知道最后的角度,就可以求得最后的线的任意一个点的位置。

    所打数学公式参考:https://en.wikibooks.org/wiki/LaTeX/Mathematics

    相关文章

      网友评论

          本文标题:两点间连线围绕其中一个点旋转一定角度之后的角度或线

          本文链接:https://www.haomeiwen.com/subject/ufjpuhtx.html