方位角
我们熟知了常用的三角函数,有一个变种的三角函数,可以根据点的坐标直接求解。它就是atan2(点的反正切),也称之为方位角。函数于 1961 年首次出现在编程语言 Fortran 中。它最初是为了在从笛卡尔坐标转换时为角度 θ 返回一个正确且明确的值 (x, y) 到极坐标 (r, θ)。
在计算和数学中,函数 atan2 是 2 元反正切值,它在编程运算中使用起来也非常方便,当然,你也可以完全通过正弦余弦函数来达到目的。
atan2 方法返回一个 -pi 到 pi 之间的数值,表示点 (x, y) 对应的偏移角度。这是一个逆时针角度,以弧度为单位,正 X 轴和点 (x, y) 与原点连线 之间。注意此函数接受的参数:先传递 y 坐标,然后是 x 坐标。
📐 数学公式
atan2(y,x) ≠ atan2(-y,-x) atan2(y,x) = atan(y ÷ x)
📌 JavaScript
参考代码:index.js
/* * 计算一个点的瞄准角度 * * @param {Number} role - 角色点的y坐标和x坐标,记作(y1, x1) * @param {Number} target - 目标点的y坐标和x坐标,记作(y2, x2) * @returns {Number} 返回角度值 */ export function pointDeg( role, target ) { /* 给定点的反正切,返回一个弧度 */ const radians = Math.atan2(target.y - role.y, target.x - role.x); /* 转化为度数 */ const degrees = radians * 180 / Math.PI; return degrees; }
测试:test.js
import { pointDeg } from './index'; /* 假设你站在某个点,瞄准了某个点,要计算这两点之间的角度。注意atan2中y和x的位置,不要颠倒 */ console.log(pointDeg({y:0, x:0}, {y:30, x:15})); /* 输出: 63.43494882292201 度(想象一下坐标轴点的位置,即可推断角度) */