diff --git a/DIRECTORY.md b/DIRECTORY.md index f0a34a553946..9af382c49d61 100644 --- a/DIRECTORY.md +++ b/DIRECTORY.md @@ -169,6 +169,7 @@ * [Prefix Conversions](conversions/prefix_conversions.py) * [Prefix Conversions String](conversions/prefix_conversions_string.py) * [Pressure Conversions](conversions/pressure_conversions.py) + * [Rec To Pol](conversions/rec_to_pol.py) * [Rgb Cmyk Conversion](conversions/rgb_cmyk_conversion.py) * [Rgb Hsv Conversion](conversions/rgb_hsv_conversion.py) * [Roman Numerals](conversions/roman_numerals.py) diff --git a/conversions/rec_to_pol.py b/conversions/rec_to_pol.py new file mode 100644 index 000000000000..44cc23e239e7 --- /dev/null +++ b/conversions/rec_to_pol.py @@ -0,0 +1,33 @@ +import doctest +import math + + +def rec_to_pol(real: float, img: float) -> tuple: + """ + https://en.wikipedia.org/wiki/Polar_coordinate_system + + >>> rec_to_pol(5,-5) + (7.07, -45.0) + >>> rec_to_pol(-1,1) + (1.41, 135.0) + >>> rec_to_pol(-1,-1) + (1.41, -135.0) + >>> rec_to_pol(1e-10,1e-10) + (0.0, 45.0) + >>> rec_to_pol(-1e-10,1e-10) + (0.0, 135.0) + >>> rec_to_pol(9.75,5.93) + (11.41, 31.31) + >>> rec_to_pol(10000,99999) + (100497.76, 84.29) + + """ + + mod = round(math.sqrt((real**2) + (img**2)), 2) + + ang = round(math.degrees(math.atan2(img, real)), 2) + return (mod, ang) + + +if __name__ == "__main__": + doctest.testmod()