Python: преобразование радианов в градусы
В python.org математическая библиотека, я мог найти только math.cos(x)
, С cos/sin/tan/acos/asin / atan. Это возвращает ответ в радианах. Как я могу получить ответ в градусах?
вот мой код:
import math
x = math.cos(1)
y = x * 180 / math.pi
print y
30.9570417874
мой калькулятор, на deg, дает мне:
cos(1)
0.9998476...
6 ответов
Python включает в себя две функции в math
пакет; radians
преобразует градусы в радианы, и degrees
преобразует радианы в градусы.
чтобы соответствовать выходу вашего калькулятора, вам нужно:
>>> math.cos(math.radians(1))
0.9998476951563913
обратите внимание, что все тригонометрические функции преобразования между углом и отношение двух сторон треугольника. cos, sin и tan принимают угол в радианах как вход и возвращают отношение; acos, asin и atan принимают отношение как вход и возвращают угол в радианах. Вы только преобразуйте углы, но не соотношения.
вы можете просто преобразовать результат Радиана в степень, используя
математика.Градусы и округление соответствующим образом до требуемых десятичных знаков
>>> round(math.degrees(math.asin(0.5)),2)
30.0
>>>
Python преобразует радианы в градусы или градусы в радианы:
что такое радианы и какую проблему это решает?:
радианы и градусы-это две отдельные единицы измерения, которые позволяют людям выражать и сообщать точные изменения в направлении. Википедия имеет отличную интуицию с их инфографикой о том, как один Радиан определяется относительно Градусы:
https://en.wikipedia.org/wiki/Radian
примеры Python с использованием библиотек, вычисляющих Градусы от радианов:
>>> import math
>>> math.degrees(0) #0 radians == 0 degrees
0.0
>>> math.degrees(math.pi/2) #pi/2 radians is 90 degrees
90.0
>>> math.degrees(math.pi) #pi radians is 180 degrees
180.0
>>> math.degrees(math.pi+(math.pi/2)) #pi+pi/2 radians is 270 degrees
270.0
>>> math.degrees(math.pi+math.pi) #2*pi radians is 360 degrees
360.0
примеры Python с использованием библиотек, вычисляющих радианы из градусов:
>>> import math
>>> math.radians(0) #0 degrees == 0 radians
0.0
>>> math.radians(90) #90 degrees is pi/2 radians
1.5707963267948966
>>> math.radians(180) #180 degrees is pi radians
3.141592653589793
>>> math.radians(270) #270 degrees is pi+(pi/2) radians
4.71238898038469
>>> math.radians(360) #360 degrees is 2*pi radians
6.283185307179586
источник:https://docs.python.org/3/library/math.html#angular-conversion
в математическая нотация:
вы можете сделать преобразование степени/Радиана без библиотек:
если вы катите свой собственный преобразователь степени / Радиана, вы должны написать свой собственный код для обработки краевых случаев.
ошибки здесь легко сделать, и будет больно так же, как это больно разработчикам 1999 Mars orbiter, который потопил $125m долларов, разбив его на Марс из-за не интуитивных крайних случаев здесь.
давайте разобьем этот орбитальный корабль и свернем наши собственные радианы в Градусы:
недопустимые радианы в качестве входного возвращаемого вывода мусора.
>>> 0 * 180.0 / math.pi #0 radians is 0 degrees
0.0
>>> (math.pi/2) * 180.0 / math.pi #pi/2 radians is 90 degrees
90.0
>>> (math.pi) * 180.0 / math.pi #pi radians is 180 degrees
180.0
>>> (math.pi+(math.pi/2)) * 180.0 / math.pi #pi+(pi/2) radians is 270 degrees
270.0
>>> (2 * math.pi) * 180.0 / math.pi #2*pi radians is 360 degrees
360.0
градусов в радианы:
>>> 0 * math.pi / 180.0 #0 degrees in radians
0.0
>>> 90 * math.pi / 180.0 #90 degrees in radians
1.5707963267948966
>>> 180 * math.pi / 180.0 #180 degrees in radians
3.141592653589793
>>> 270 * math.pi / 180.0 #270 degrees in radians
4.71238898038469
>>> 360 * math.pi / 180.0 #360 degrees in radians
6.283185307179586
выражая множественные вращения с градусами и радианами
одиночные значения Радиана вращения действительные между 0 и 2*pi. Одиночные значения степени вращения между 0 и 360. Однако, если вы хотите выразить множественные вращения, действительные значения Радиана и степени между 0 и бесконечностью.
>>> import math
>>> math.radians(360) #one complete rotation
6.283185307179586
>>> math.radians(360+360) #two rotations
12.566370614359172
>>> math.degrees(12.566370614359172) #math.degrees and math.radians preserve the
720.0 #number of rotations
свертывание нескольких вращений:
вы можете свернуть несколько градусов / Радиан вращения в одно вращение путем моддинга против значения одного вращения. Для градусов вы мод на 360, для радианов вы модуль на 2 * Пи.
>>> import math
>>> math.radians(720+90) #2 whole rotations plus 90 is 14.14 radians
14.137166941154069
>>> math.radians((720+90)%360) #14.1 radians brings you to
1.5707963267948966 #the end point as 1.57 radians.
>>> math.degrees((2*math.pi)+(math.pi/2)) #one rotation plus a quarter
450.0 #rotation is 450 degrees.
>>> math.degrees(((2*math.pi)+(math.pi/2))%(2*math.pi)) #one rotation plus a quarter
90.0 #rotation brings you to 90.
Protip
академия Хан имеет отличное содержание, чтобы укрепить интуицию вокруг тригонометрия и угловая математика: https://www.khanacademy.org/math/algebra2/trig-functions/intro-to-radians-alg2/v/introduction-to-radians
мне также нравится определять свои собственные функции, которые принимают и возвращают аргументы в градусах, а не радианах. Я уверен, что есть чистая капитализация, которым не нравятся мои имена, но я просто использую заглавную букву для своих пользовательских функций. Ниже приведены определения и код тестирования.
#Definitions for trig functions using degrees.
def Cos(a):
return cos(radians(a))
def Sin(a):
return sin(radians(a))
def Tan(a):
return tan(radians(a))
def ArcTan(a):
return degrees(arctan(a))
def ArcSin(a):
return degrees(arcsin(a))
def ArcCos(a):
return degrees(arccos(a))
#Testing Code
print(Cos(90))
print(Sin(90))
print(Tan(45))
print(ArcTan(1))
print(ArcSin(1))
print(ArcCos(0))
обратите внимание, что я импортировал math (или numpy) в пространство имен с помощью
from math import *
Также обратите внимание, что мои функции в пространство имен, в котором они были определены. Для например,
math.Cos(45)
не существует.
-исправить- потому что вы хотите изменить от радианов к градусам, оно фактически rad=deg * math.pi / 180 и не deg * 180 / math.Пи
import math
x=1 # in deg
x = x*math.pi/180 # convert to rad
y = math.cos(x) # calculate in rad
print y
в 1 строке это может быть так
y=math.cos(1*math.pi/180)
Радиан также может быть преобразован в степень с помощью numpy
print(np.rad2deg(1))
57.29577951308232
Если необходимо округлить (я сделал с 6 цифрами после десятичного знака ниже), то
print(np.round(np.rad2deg(1), 6)
57.29578