如何在MySQL中将弧度转换为以正北为0°的角度
MySQL 弧度转自定义方向角度解决方案
常规DEGREES()函数转换后的角度遵循数学坐标系规则(0°对应正东,逆时针递增),要实现0°对应正北、90°对应正东、180°对应正南、270°对应正西的自定义方向转换,可使用以下公式:
(90 - DEGREES(your_radian_value) + 360) % 360
公式说明
DEGREES(your_radian_value):将输入的弧度值转换为数学坐标系角度90 - DEGREES(...):将坐标系原点从正东偏移至正北,匹配自定义方向的起始规则+ 360:避免计算出现负数结果% 360:确保最终结果始终落在0°~360°的有效范围内
示例验证
- 输入弧度值0(对应正东),转换后应为90°:
SELECT (90 - DEGREES(0) + 360) % 360 AS target_degree; -- 输出:90
- 输入弧度值
PI()/2(对应正北),转换后应为0°:
SELECT (90 - DEGREES(PI()/2) + 360) % 360 AS target_degree; -- 输出:0
- 输入弧度值
PI()(对应正西),转换后应为270°:
SELECT (90 - DEGREES(PI()) + 360) % 360 AS target_degree; -- 输出:270
- 输入弧度值
3*PI()/2(对应正南),转换后应为180°:
SELECT (90 - DEGREES(3*PI()/2) + 360) % 360 AS target_degree; -- 输出:180
可选优化
如果需要保留指定小数位数,可结合ROUND()函数:
SELECT ROUND((90 - DEGREES(your_radian_value) + 360) % 360, 3) AS target_degree;
内容的提问来源于stack exchange,提问作者Pieter Pauwels
相关产品推荐
相关产品推荐

