核心内容摘要
B站宝藏剧集大揭秘:免费好剧看不停,总有一部戳中你!
第1步、求出 tan θ 的值① 将目标向量归一化为 单位向量② 将单位向量的 Y值 / X值就能得到tan θ知识点通过观察单位圆上坐标点能方便知道某角度的正弦余弦值 。
想象一个半径为1的圆圆心在坐标原点(0,
。
起点从圆上最右边的点(1,
开始。
旋转从这个点开始逆时针转动一个角度比如30度、120度、400度都行。
停下来的位置在圆上有一个点。
看坐标这个停下来的点的坐标就是(cosθ, sinθ)。
x坐标cosθ余弦y坐标sinθ正弦知识点tanθ正切 sinθ / cosθ第2步、分析 tan θ 的值推算出 θY tanX 函数图
1 通过 Atan反正切求出 θ 是否可行从函数图可以看出C# 的Atan反正切函数 也确实也只返回一个数值但这是因为
2 正确的方法 Atan2 Atan2(y, x)直接根据点的直角坐标 (x, y)来计算该点与原点连线相对于正X轴的角度自动处理了所有象限和特殊边界情况。
函数签名返回值单位返回的是弧度值如需角度需要转换角度 弧度 * 180 / π为什么有atan2没有asin2/acos2因为tan(θ) y/x中比值y/x会完全丢失符号信息例如 1/1 和 (-
/(-
都是 1无法判断象限。
而sin(θ) y/r和cos(θ) x/r中至少还能保留一个符号信息y 或 x 的符号。
atan2的本质作用它是一个专门从直角坐标 (x, y) 计算角度的“完全版”函数。
它同时利用 x 和 y 的符号直接给出正确象限的角度。
范围是(-π, π]覆盖全方向。
其他反三角不需要“2”版本的原因asin(y)和acos(x)已经有明确的主值区间分别是[-π/2, π/2]和[0, π]。
它们丢失的信息可以用atan2完美替代没必要再造新函数。
实际上asin(y/r)或acos(x/r)经过象限调整后结果就等于atan2(y, x)。
一句话