Source code for ewmh_m2m.ordinal
from enum import Enum
import math
_HEXADAN = 360 / 16
[docs]
class Ordinal(Enum):
EAST = 0 * _HEXADAN
NORTH = 4 * _HEXADAN
WEST = 8 * _HEXADAN
SOUTH = 12 * _HEXADAN
NORTHEAST = 2 * _HEXADAN
NORTHWEST = 6 * _HEXADAN
SOUTHWEST = 10 * _HEXADAN
SOUTHEAST = 14 * _HEXADAN
EAST_NORTHEAST = 1 * _HEXADAN
NORTH_NORTHEAST = 3 * _HEXADAN
NORTH_NORTHWEST = 5 * _HEXADAN
WEST_NORTHWEST = 7 * _HEXADAN
WEST_SOUTHWEST = 9 * _HEXADAN
SOUTH_SOUTHWEST = 11 * _HEXADAN
SOUTH_SOUTHEAST = 13 * _HEXADAN
EAST_SOUTHEAST = 15 * _HEXADAN
def __init__(self, value) -> None:
self.sin = round(math.sin(math.radians(value)), 6)
self.cos = round(math.cos(math.radians(value)), 6)
def __str__(self) -> str:
return self.name
@property
def opposite(self):
return Ordinal((self.value + 180) % 360)