使用JavaScript计算两点间角度
本文介绍如何用JavaScript计算点B相对于点A的弧度,特别是基于鼠标点击坐标获取角度的情况。
核心在于利用JavaScript的数学函数计算角度。 图片显示了点A和点B,我们需要计算B点相对于A点的弧度。JavaScript的Math.atan2(y, x)
函数非常有用。
Math.atan2(y, x)
根据坐标(x, y)计算点与原点间的角度(弧度)。但我们需要计算B点相对于A点的角度,所以先计算B点相对于A点的坐标差值:Δx = B.x - A.x,Δy = B.y - A.y。然后将Δy和Δx作为参数传入Math.atan2()
。
Math.atan2(y, x)
返回弧度值,范围是(-π, π]。B点相对于A点位于第一或第二象限,弧度值在[0, π]之间;位于第三或第四象限,则在(0, -π]之间。
如果需要计算B点相对于A点的逆时针旋转弧度,需要对负弧度进行调整。当Math.atan2()
返回负值时,加上2π将其转换为正值,表示逆时针旋转角度。
以下代码片段演示了这个功能:
// 获取B点相对于A点的逆时针旋转弧度 const getRadian = (b, a) => { let rad = Math.atan2(b.y - a.y, b.x - a.x); if (rad < 0) { rad += 2 * Math.PI; } return rad; };
这个函数接收两个点对象a
和b
作为参数,每个点对象包含x
和y
属性表示坐标。函数返回B点相对于A点逆时针旋转的弧度值。 此函数方便地计算基于鼠标点击坐标得到的两点间角度。