Push 05.02.2026
This commit is contained in:
85
Einheitenumrechnung.py
Normal file
85
Einheitenumrechnung.py
Normal file
@@ -0,0 +1,85 @@
|
||||
from decimal import Decimal
|
||||
import sympy as sp
|
||||
import math
|
||||
|
||||
class Einheitenumrechnung:
|
||||
"""Einheitenumrechnungen für Winkel- und Längeneinheiten.
|
||||
|
||||
Die Klasse stellt Methoden zur Verfügung für:
|
||||
|
||||
- Umrechnung von Millibogensekunden (mas) in Radiant,
|
||||
- Umrechnung von Millimetern (mm) in Meter,
|
||||
- Umrechnung von Gon und Milligon (mgon) in Radiant (Decimal-basiert).
|
||||
"""
|
||||
|
||||
def mas_to_rad(mas: float) -> float:
|
||||
"""Rechnet Millibogensekunden (mas) in Radiant um.
|
||||
|
||||
Es gilt: rad = mas * (pi / (180 * 3600 * 1000)).
|
||||
|
||||
:param mas: Winkel in Millibogensekunden (mas).
|
||||
:type mas: float
|
||||
:return: Winkel in Radiant.
|
||||
:rtype: float
|
||||
"""
|
||||
umrechnungsfaktor = 1 / 1000 * 1 / 3600 * sp.pi / 180
|
||||
grad = mas * umrechnungsfaktor
|
||||
return grad
|
||||
|
||||
def mm_to_m(mm: float) -> float:
|
||||
"""Rechnet Millimeter in Meter um.
|
||||
|
||||
Es gilt: m = mm / 1000.
|
||||
|
||||
:param mm: Länge in Millimeter.
|
||||
:type mm: float
|
||||
:return: Länge in Meter.
|
||||
:rtype: float
|
||||
"""
|
||||
m = mm / 1000
|
||||
return m
|
||||
|
||||
def gon_to_rad_Decimal(gon: float) -> Decimal:
|
||||
"""Rechnet Gon in Radiant um (Decimal-basiert).
|
||||
|
||||
Es gilt: 400 gon = 2*pi und damit rad = (gon / 200) * pi.
|
||||
|
||||
:param gon: Winkel in Gon.
|
||||
:type gon: float
|
||||
:return: Winkel in Radiant als Decimal.
|
||||
:rtype: Decimal
|
||||
"""
|
||||
gon = Decimal(gon)
|
||||
pi = Decimal(str(math.pi))
|
||||
rad = (gon / Decimal(200)) * pi
|
||||
return rad
|
||||
|
||||
def mgon_to_rad_Decimal(gon: float) -> Decimal:
|
||||
"""Rechnet Milligon (mgon) in Radiant um (Decimal-basiert).
|
||||
|
||||
Es gilt: 1 mgon = 0.001 gon und damit rad = (mgon / 200000) * pi.
|
||||
|
||||
:param gon: Winkel in Milligon (mgon).
|
||||
:type gon: float
|
||||
:return: Winkel in Radiant als Decimal.
|
||||
:rtype: Decimal
|
||||
"""
|
||||
gon = Decimal(gon)
|
||||
pi = Decimal(str(math.pi))
|
||||
rad = (gon / Decimal(200000)) * pi
|
||||
return rad
|
||||
|
||||
def rad_to_gon_Decimal(rad: float) -> Decimal:
|
||||
"""Rechnet Radiant in Gon um (Decimal-basiert).
|
||||
|
||||
Es gilt: 400 gon = 2*pi und damit rad = (gon / 200) * pi.
|
||||
|
||||
:param rad: Winkel in Rad.
|
||||
:type rad: float
|
||||
:return: Winkel in Gon als Decimal.
|
||||
:rtype: Decimal
|
||||
"""
|
||||
rad = Decimal(rad)
|
||||
pi = Decimal(str(math.pi))
|
||||
gon = (rad / pi) * Decimal(200)
|
||||
return gon
|
||||
Reference in New Issue
Block a user