Вы можете проверить разницу, а не абсолютное значение.
Чтобы определить, находится ли разница за пределами диапазона 90, вы можете использовать формулу, которая учитывает произвольные углы, включая переходы через 0 (не забывайте, что углы должны быть в радианах)
if Cos(startingangle - currentangle) <=0 then
absolute difference is equal or more than Pi/2 (90 degrees)
Здесь толстая стрелка показывает (игнорируйте метки оси или делите их на 4) Cos
разности нулевого начального угла с углами +-30
градусов (работает для любого начального угла)
Демонстрация Python:
import math
def AngleInRange(value, central, arange):
value = math.radians(value)
central = math.radians(central)
arange = math.radians(arange)
return (math.cos(value - central) >= math.cos(arange))
for a in range (100, 220, 15): #through 180
print(a, AngleInRange(a, 150, 45))
for a in range (-40, 40, 10): #through 0
print(a, AngleInRange(a, -10, 20))
100 False
115 True
130 True
145 True
160 True
175 True
190 True
205 False
-40 False
-30 True
-20 True
-10 True
0 True
10 True
20 False
30 False