import numpy as np import winkelumrechnungen as wu def arccot(x: float) -> float: """ Berechnung von arccot eines Winkels :param x: Winkel :return: arccot(Winkel) """ return np.arctan2(1.0, x) def cot(x: float) -> float: """ Berechnung von cot eines Winkels :param x: Winkel :return: cot(Winkel) """ return np.cos(x) / np.sin(x) def wrap_mpi_pi(x: float) -> float: """ Wrap eines Winkels in den Wertebereich [-π, π) :param x: Winkel :return: Winkel in [-π, π) """ return (x + np.pi) % (2 * np.pi) - np.pi def wrap_mhalfpi_halfpi(x: float) -> float: """ Wrap eines Winkels in den Wertebereich [-π/2, π/2) :param x: Winkel :return: Winkel in [-π/2, π/2) """ return (x + np.pi / 2) % np.pi - np.pi / 2 def wrap_0_2pi(x: float) -> float: """ Wrap eines Winkels in den Wertebereich [0, 2π) :param x: Winkel :return: Winkel in [0, 2π) """ return x % (2 * np.pi) if __name__ == "__main__": print(wu.rad2deg(wrap_mhalfpi_halfpi(wu.deg2rad(181)))) print(wu.rad2deg(wrap_0_2pi(wu.deg2rad(181)))) print(wu.rad2deg(wrap_mpi_pi(wu.deg2rad(181))))