--- title: mbcp.mp_math.angle --- ### ***class*** `Angle` ### ***class*** `AnyAngle` ### *def* `__init__(self, value: float, is_radian: bool = False)` 任意角度。 参数: - value: 角度或弧度值 - is_radian: 是否为弧度,默认为否
源码 ```python def __init__(self, value: float, is_radian: bool=False): """ 任意角度。 Args: value: 角度或弧度值 is_radian: 是否为弧度,默认为否 """ if is_radian: self.radian = value else: self.radian = value * PI / 180 ```
### `@property` ### *def* `complementary(self) -> 'AnyAngle'` 余角:两角的和为90°。 返回: - 余角
源码 ```python @property def complementary(self) -> 'AnyAngle': """ 余角:两角的和为90°。 Returns: 余角 """ return AnyAngle(PI / 2 - self.minimum_positive.radian, is_radian=True) ```
### `@property` ### *def* `supplementary(self) -> 'AnyAngle'` 补角:两角的和为180°。 返回: - 补角
源码 ```python @property def supplementary(self) -> 'AnyAngle': """ 补角:两角的和为180°。 Returns: 补角 """ return AnyAngle(PI - self.minimum_positive.radian, is_radian=True) ```
### `@property` ### *def* `degree(self) -> float` 角度。 返回: - 弧度
源码 ```python @property def degree(self) -> float: """ 角度。 Returns: 弧度 """ return self.radian * 180 / PI ```
### `@property` ### *def* `minimum_positive(self) -> 'AnyAngle'` 最小正角。 返回: - 最小正角度
源码 ```python @property def minimum_positive(self) -> 'AnyAngle': """ 最小正角。 Returns: 最小正角度 """ return AnyAngle(self.radian % (2 * PI)) ```
### `@property` ### *def* `maximum_negative(self) -> 'AnyAngle'` 最大负角。 返回: - 最大负角度
源码 ```python @property def maximum_negative(self) -> 'AnyAngle': """ 最大负角。 Returns: 最大负角度 """ return AnyAngle(-self.radian % (2 * PI), is_radian=True) ```
### `@property` ### *def* `sin(self) -> float` 正弦值。 返回: - 正弦值
源码 ```python @property def sin(self) -> float: """ 正弦值。 Returns: 正弦值 """ return math.sin(self.radian) ```
### `@property` ### *def* `cos(self) -> float` 余弦值。 返回: - 余弦值
源码 ```python @property def cos(self) -> float: """ 余弦值。 Returns: 余弦值 """ return math.cos(self.radian) ```
### `@property` ### *def* `tan(self) -> float` 正切值。 返回: - 正切值
源码 ```python @property def tan(self) -> float: """ 正切值。 Returns: 正切值 """ return math.tan(self.radian) ```
### `@property` ### *def* `cot(self) -> float` 余切值。 返回: - 余切值
源码 ```python @property def cot(self) -> float: """ 余切值。 Returns: 余切值 """ return 1 / math.tan(self.radian) ```
### `@property` ### *def* `sec(self) -> float` 正割值。 返回: - 正割值
源码 ```python @property def sec(self) -> float: """ 正割值。 Returns: 正割值 """ return 1 / math.cos(self.radian) ```
### `@property` ### *def* `csc(self) -> float` 余割值。 返回: - 余割值
源码 ```python @property def csc(self) -> float: """ 余割值。 Returns: 余割值 """ return 1 / math.sin(self.radian) ```
### *def* `__add__(self, other: 'AnyAngle') -> 'AnyAngle'`
源码 ```python def __add__(self, other: 'AnyAngle') -> 'AnyAngle': return AnyAngle(self.radian + other.radian, is_radian=True) ```
### *def* `__eq__(self, other)`
源码 ```python def __eq__(self, other): return approx(self.radian, other.radian) ```
### *def* `__sub__(self, other: 'AnyAngle') -> 'AnyAngle'`
源码 ```python def __sub__(self, other: 'AnyAngle') -> 'AnyAngle': return AnyAngle(self.radian - other.radian, is_radian=True) ```
### *def* `__mul__(self, other: float) -> 'AnyAngle'`
源码 ```python def __mul__(self, other: float) -> 'AnyAngle': return AnyAngle(self.radian * other, is_radian=True) ```
### *def* `__repr__(self)`
源码 ```python def __repr__(self): return f'AnyAngle({self.radian}, is_radian=True)' ```
### *def* `__str__(self)`
源码 ```python def __str__(self): return f'AnyAngle({self.degree}° or {self.radian} rad)' ```
### `@overload` ### *def* `__truediv__(self, other: float) -> 'AnyAngle'`
源码 ```python @overload def __truediv__(self, other: float) -> 'AnyAngle': ... ```
### `@overload` ### *def* `__truediv__(self, other: 'AnyAngle') -> float`
源码 ```python @overload def __truediv__(self, other: 'AnyAngle') -> float: ... ```
### *def* `__truediv__(self, other)`
源码 ```python def __truediv__(self, other): if isinstance(other, AnyAngle): return self.radian / other.radian return AnyAngle(self.radian / other, is_radian=True) ```