如何用js计算出鼠标移动的方向和某条直线之间的角度?

页面上有一条直线(不一定是水平的),现在当鼠标在其上面移动的时候要获取mousemove时的方向与该直线的夹角是多少度,有什么好的思路?
图片描述

阅读 6k
2 个回答

1 先获取直线的2各端点和鼠标当前相对于直线所在容器的坐标值
2 设直线的2各个端点的坐标PS(x1,y1) PE(x2,y2)
3.当前鼠标点位置M(x3,y3)
4.直线的结束点(题目中的右下方点)设为坐标原点(0,0)
5.直线点的坐标转成PS(x1-x2,(y1-y2)*-1) PE(0,0)
6.鼠标点位置M(x3-x2,(y3-y2)*-1)
4.求出直线和水平线的夹角PA=Math.atan2(PE.y-PS.y,PE.x-PS.x)*180/Math.PI;
5.求出鼠标点和PE点之间的直线和水平线之间的夹角MA
6.PA-MA的差就是你期望的角度

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题