我需要一個將角度(以度數爲單位)限制在任意範圍[min,max]
的功能。以下是一些示例: 將夾角限制在任意範圍
彩色區域表示有效的角度範圍。
- 在圖像#1,昂應鉗位到最大(-90)
- 在圖像#2,ANG應鉗位到分鐘(135)
- 在圖像#3,ANG應鉗位到分鐘(135)
這是我到目前爲止有:
static float clamp_angle(float ang,float min,float max)
{
ang = normalize_angle(ang); // normalize_angle transforms angle into [-180,180) range
min = normalize_angle(min);
max = normalize_angle(max);
if(angle_in_range(ang,min,max) == false)
{
if(abs(get_angle_difference(ang,min)) < abs(get_angle_difference(ang,max))
ang = min; // Clamp to min if we're closer to min than max
else
ang = max;
}
return ang;
}
什麼,我缺少的是功能angle_in_range
(true
如果角度的範圍內,否則false
)。
確定角度是否在範圍內的最簡單方法是什麼?
這聽起來類似於http://stackoverflow.com/questions/13652518/efficiently-find-points-圈內圈?至少數學要求。 – Zze