在无意之中,想到了一个问题:
知道两个点,一个点是,另外一个点是,然后想让他俩之间的连线绕着点逆时针旋转一定的角度θ,怎么能够求得旋转后的方向上的任意一个点的坐标。
最后有几种方法,其中一个方法是直接计算,另外一个方法是求得原来的角度再加上旋转的角度求得最后的线,求原来角度的时候,有的是通过arctan进行求得,有的是通过arcsin或arccos求得,如果有哪里不对,敬请指正
首先设两个点分别是 (,)和(,)
sinα = = β
cosα = = Ω
直接计算的算法
基本思路是:
1、旋转后的角度为 α + β
2、可以求得
需要求α的算法
直接求α
推导求
和进行比较 (sin结果) | 和进行比较(cos结果) | 象限位置 |
---|---|---|
> | > | 第一象限 |
> | = | 垂直向上 |
> | < | 第二象限 |
= | > | 水平向右 |
= | = | 两点重合 |
= | < | 垂直向下 |
< | > | 第四象限 |
< | = | 垂直向下 |
< | < | 第三象限 |
针对以上结果,完全水平活完全垂直的不做任何的计算,那么我们需要对第一、二、三、四象限的进行计算处理。
象限 | α的结果 |
---|---|
一 | arcsin β 或 arccos Ω |
二 | π - arcsinβ 或 arccos Ω |
三 | - arcsinβ 或 π + (π - arccos Ω) = 2π - arccos Ω |
四 | arcsin β 或 - arccos Ω |
求得具体的α之后加上θ角度知道最后的角度,就可以求得最后的线的任意一个点的位置。
网友评论