JS_根据两个点的坐标计算第一个点到第二个点的角度,A (x1, y1) 和点 B (x2, y2)计算360角度

要计算两个点的坐标,即点 A (x1, y1) 和点 B (x2, y2) 之间的角度,可以使用以下公式:

js 复制代码
angle = Math.atan2(y2 - y1, x2 - x1) * 180 / Math.PI;

其中,Math.atan2() 返回点 B 相对于点 A 的方位角,这个角度由正 x 轴逆时针旋转到点 B 与点 A 连线的角度得出。因此,Math.atan2(y2 - y1, x2 - x1) 返回的是弧度制的角度。将这个角度乘以 180/π,即 * 180 / Math.PI,就可以将其转换为角度制。

以下是一个 JavaScript 函数,它接受四个参数,分别是点 A 的 x/y 坐标和点 B 的 x/y 坐标,返回点 A 到点 B 之间的角度:

js 复制代码
function calculateAngle(x1, y1, x2, y2) {
  var angle = Math.atan2(y2 - y1, x2 - x1) * 180 / Math.PI;
  return angle;
}

例如,如果点 A 的坐标为 (4, 3),点 B 的坐标为 (1, 5),则调用该函数:

js 复制代码
var angle = calculateAngle(4, 3, 1, 5);
console.log(angle);

注意:180度以后就会为负数从-180到-0

解决办法

js 复制代码
angle < 0 ? 360 + angle : angle

最终实现

js 复制代码
function calculateAngle(x1, y1, x2, y2) {
  var angle = Math.atan2(y2 - y1, x2 - x1) * 180 / Math.PI;
  if(angle < 0) return angle < 0 ? 360 + angle : angle
  return angle;
}


console.log('res::', calculateAngle(1,1, 200, -200));	//	315
相关推荐
盛世宏博北京20 分钟前
高效环境管控:楼宇机房以太网温湿度精准监测系统方案
开发语言·数据库·php·以太网温湿度变送器
IT猿手34 分钟前
六种智能优化算法(NOA、MA、PSO、GA、ZOA、SWO)求解23个基准测试函数(含参考文献及MATLAB代码)
开发语言·算法·matlab·无人机·无人机路径规划·最新多目标优化算法
We་ct39 分钟前
LeetCode 151. 反转字符串中的单词:两种解法深度剖析
前端·算法·leetcode·typescript
gfdhy1 小时前
【C++实战】多态版商品库存管理系统:从设计到实现,吃透面向对象核心
开发语言·数据库·c++·microsoft·毕业设计·毕设
忧郁的橙子.1 小时前
26期_01_Pyhton文件的操作
开发语言·python
余瑜鱼鱼鱼1 小时前
线程和进程的区别和联系
java·开发语言·jvm
yinmaisoft1 小时前
JNPF 表单模板实操:高效复用表单设计指南
前端·javascript·html
zzcufo1 小时前
多邻国第五阶段第13部分
java·开发语言·数据库
37方寸1 小时前
前端基础知识(JavaScript)
开发语言·前端·javascript
Whisper_Sy2 小时前
Flutter for OpenHarmony移动数据使用监管助手App实战 - 应用列表实现
android·开发语言·javascript·flutter·php