提问人:iter 提问时间:11/10/2022 最后编辑:iter 更新时间:4/30/2023 访问量:566
如何将角度从 [0..360] 映射到 [-180..180]
How to map angles from [0..360] to [-180..180]
问:
我现在正在画一个空白。我需要在“有符号”和“无符号”度数之间来回转换,[-180..180] 和 [0..360]
从 [-180..180] 到 [0..360] 的简单方法是
(d+360) % 360
(+360 消除了某些语言中关于符号的歧义)。
如何进行逆运算?我能做
if d<180 d else d-360
但它看起来很丑。
编辑:以下是一些示例数字。我想绘制这个地图
[0, 90, 180, 270, 360]
对此:
[0, 90, 180, -90, 0]
编辑 2:好了,大脑冻结结束了。答案是
(A+180)%360-180
答:
-1赞
Isaí
11/10/2022
#1
要将一个区间映射到另一个区间,可以使用线性插值 喜欢
float map(float n, float x1, float x2, float y1, float y2)
{
float m = (y2 - y1) / (x2 - x1);
return y1 + m * (n - x1);
}
其中 x1 <= n <= x2,结果值介于 y1 和 y2 之间
评论
0赞
iter
11/10/2022
我不认为这能满足我的需求。它将映射 0° 到 -180°、180° 到 0° 和 360° 到 180°。
3赞
iter
11/10/2022
#2
好吧,大脑冻结的答案是
(a+180)%360-180
评论