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
相关推荐
蜕变的土豆4 分钟前
grpc-通关速成
开发语言·c++
-To be number.wan4 分钟前
Python数据分析:英国电商销售数据实战
开发语言·python·数据分析
玩电脑的辣条哥5 分钟前
幽灵回复AI已回复但前端不显示的排查与修复
前端·人工智能
xb113215 分钟前
C#生产者-消费者模式
开发语言·c#
电商API&Tina16 分钟前
乐天平台 (Rakuten) 数据采集指南
大数据·开发语言·数据库·oracle·json
石去皿19 分钟前
轻量级 Web 应用 —— 把一堆图片按指定频率直接拼成视频,零特效、零依赖、零命令行
前端·音视频
zhougl99633 分钟前
Java内部类详解
java·开发语言
Grassto34 分钟前
11 Go Module 缓存机制详解
开发语言·缓存·golang·go·go module
代码游侠43 分钟前
学习笔记——Linux内核与嵌入式开发3
开发语言·arm开发·c++·学习
星夜落月1 小时前
Web-Check部署全攻略:打造个人网站监控与分析中心
运维·前端·网络