如何有效地将角度(以弧度为单位)转换为从 0 到 7 的索引?

How can I efficiently convert an angle (in radian) to an index from 0 to 7?

我有一个弧度角,我想按以下方式将其转换为从 0 到 7 的索引值:

注意0 rad应该落在扇区的中间等

使用简单的数学运算最有效的方法是什么?

我认为这可行:

import math

def angle_to_sector(angle_in_rads):
  sector_size_in_rads = 2*math.pi / 8
  offset_angle = (angle_in_rads + sector_size_in_rads/2) % (2*math.pi)
  sector = offset_angle // sector_size_in_rads
  return sector

每个"slice"占pi/4。按照@Beta 所说的,你可以这样做:

def rad2slice(rad):
    return int((4 * rad / np.pi + .5) % 8)

# Quick test:
In [22]: [rad2slice(i*np.pi/4) for i in range(8)]                               
Out[22]: [0, 1, 2, 3, 4, 5, 6, 7]