【python】三角関数(sin,cos,tan)の使い方[mathライブラリ]

2020年3月31日

三角関数を使用するにはmathライブラリをインポートする必要があります。
引数として角度を渡します。角度は度数法でなく、弧度法(ラジアン)なので注意が必要です。

import math
【sin値】= math.sin(【角度(ラジアン)】)
【cos値】= math.cos(【角度(ラジアン)】)
【tan値】= math.tan(【角度(ラジアン)】)

角度を度数法から弧度法に変換して使用するには関数「math.radians」を使用しましょう。
下記例では45°をラジアンに変換して三角関数(sin,cos,tan)の引数として渡します。

import math
deg = 45
rad = math.radians( deg )
print( "rad( 45°) =",rad )                  #rad( 45°) =  0.7853981633974483
print( "sin(",deg,") = ", math.sin( rad ) ) #sin( 45 ) =  0.7071067811865475
print( "cos(",deg,") = ", math.cos( rad ) ) #cos( 45 ) =  0.7071067811865476
print( "tan(",deg,") = ", math.tan( rad ) ) #tan( 45 ) =  0.9999999999999999

sin関数の使用例

下記では円を一周(360°)と少し分の角度を引数にしてsinを取得します。
round関数は見やすくするために使用し、桁数を6桁に抑えています。

import math
print( "sin(   0 ) = ", round( math.sin( math.radians(   0 ) ) , 6) ) #sin(   0 ) =  0.0
print( "sin(  30 ) = ", round( math.sin( math.radians(  30 ) ) , 6) ) #sin(  30 ) =  0.5
print( "sin(  45 ) = ", round( math.sin( math.radians(  45 ) ) , 6) ) #sin(  45 ) =  0.707107
print( "sin(  60 ) = ", round( math.sin( math.radians(  60 ) ) , 6) ) #sin(  60 ) =  0.866025
print( "sin(  90 ) = ", round( math.sin( math.radians(  90 ) ) , 6) ) #sin(  90 ) =  1.0
print( "sin( 120 ) = ", round( math.sin( math.radians( 120 ) ) , 6) ) #sin( 120 ) =  0.866025
print( "sin( 135 ) = ", round( math.sin( math.radians( 135 ) ) , 6) ) #sin( 135 ) =  0.707107
print( "sin( 150 ) = ", round( math.sin( math.radians( 150 ) ) , 6) ) #sin( 150 ) =  0.5
print( "sin( 180 ) = ", round( math.sin( math.radians( 180 ) ) , 6) ) #sin( 180 ) =  0.0
print( "sin( 210 ) = ", round( math.sin( math.radians( 210 ) ) , 6) ) #sin( 210 ) =  -0.5
print( "sin( 225 ) = ", round( math.sin( math.radians( 225 ) ) , 6) ) #sin( 225 ) =  -0.707107
print( "sin( 240 ) = ", round( math.sin( math.radians( 240 ) ) , 6) ) #sin( 240 ) =  -0.866025
print( "sin( 270 ) = ", round( math.sin( math.radians( 270 ) ) , 6) ) #sin( 270 ) =  -1.0
print( "sin( 300 ) = ", round( math.sin( math.radians( 300 ) ) , 6) ) #sin( 300 ) =  -0.866025
print( "sin( 315 ) = ", round( math.sin( math.radians( 315 ) ) , 6) ) #sin( 315 ) =  -0.707107
print( "sin( 330 ) = ", round( math.sin( math.radians( 330 ) ) , 6) ) #sin( 330 ) =  -0.5
print( "sin( 360 ) = ", round( math.sin( math.radians( 360 ) ) , 6) ) #sin( 360 ) =  -0.0
print( "sin( 390 ) = ", round( math.sin( math.radians( 390 ) ) , 6) ) #sin( 390 ) =  0.5

cos関数の使用例

sin関数と同じ引数を与えています。

import math
print( "cos(   0 ) = ", round( math.cos( math.radians(   0 ) ) , 6)  ) #cos(   0 ) =  1.0
print( "cos(  30 ) = ", round( math.cos( math.radians(  30 ) ) , 6)  ) #cos(  30 ) =  0.866025
print( "cos(  45 ) = ", round( math.cos( math.radians(  45 ) ) , 6)  ) #cos(  45 ) =  0.707107
print( "cos(  60 ) = ", round( math.cos( math.radians(  60 ) ) , 6)  ) #cos(  60 ) =  0.5
print( "cos(  90 ) = ", round( math.cos( math.radians(  90 ) ) , 6)  ) #cos(  90 ) =  0.0
print( "cos( 120 ) = ", round( math.cos( math.radians( 120 ) ) , 6)  ) #cos( 120 ) =  -0.5
print( "cos( 135 ) = ", round( math.cos( math.radians( 135 ) ) , 6)  ) #cos( 135 ) =  -0.707107
print( "cos( 150 ) = ", round( math.cos( math.radians( 150 ) ) , 6)  ) #cos( 150 ) =  -0.866025
print( "cos( 180 ) = ", round( math.cos( math.radians( 180 ) ) , 6)  ) #cos( 180 ) =  -1.0
print( "cos( 210 ) = ", round( math.cos( math.radians( 210 ) ) , 6)  ) #cos( 210 ) =  -0.866025
print( "cos( 225 ) = ", round( math.cos( math.radians( 225 ) ) , 6)  ) #cos( 225 ) =  -0.707107
print( "cos( 240 ) = ", round( math.cos( math.radians( 240 ) ) , 6)  ) #cos( 240 ) =  -0.5
print( "cos( 270 ) = ", round( math.cos( math.radians( 270 ) ) , 6)  ) #cos( 270 ) =  -0.0
print( "cos( 300 ) = ", round( math.cos( math.radians( 300 ) ) , 6)  ) #cos( 300 ) =  0.5
print( "cos( 315 ) = ", round( math.cos( math.radians( 315 ) ) , 6)  ) #cos( 315 ) =  0.707107
print( "cos( 330 ) = ", round( math.cos( math.radians( 330 ) ) , 6)  ) #cos( 330 ) =  0.866025
print( "cos( 360 ) = ", round( math.cos( math.radians( 360 ) ) , 6)  ) #cos( 360 ) =  1.0
print( "cos( 390 ) = ", round( math.cos( math.radians( 390 ) ) , 6)  ) #cos( 390 ) =  0.866025

tan関数の使用例

sin関数と同じ引数を与えています。
タンジェントは90°と270°の時は分母が0の為、無限大になります。
mathライブラリでは無限大ではなく非常に大きい数値が計算されます。

import math
print( "tan(   0 ) = ", round(  math.tan( math.radians(   0 ) ) , 6) ) #tan(   0 ) =  0.0
print( "tan(  30 ) = ", round(  math.tan( math.radians(  30 ) ) , 6) ) #tan(  30 ) =  0.57735
print( "tan(  45 ) = ", round(  math.tan( math.radians(  45 ) ) , 6) ) #tan(  45 ) =  1.0
print( "tan(  60 ) = ", round(  math.tan( math.radians(  60 ) ) , 6) ) #tan(  60 ) =  1.732051
print( "tan(  90 ) = ", round(  math.tan( math.radians(  90 ) ) , 6) ) #tan(  90 ) =  1.633123935319537e+16
print( "tan( 120 ) = ", round(  math.tan( math.radians( 120 ) ) , 6) ) #tan( 120 ) =  -1.732051
print( "tan( 135 ) = ", round(  math.tan( math.radians( 135 ) ) , 6) ) #tan( 135 ) =  -1.0
print( "tan( 150 ) = ", round(  math.tan( math.radians( 150 ) ) , 6) ) #tan( 150 ) =  -0.57735
print( "tan( 180 ) = ", round(  math.tan( math.radians( 180 ) ) , 6) ) #tan( 180 ) =  -0.0
print( "tan( 210 ) = ", round(  math.tan( math.radians( 210 ) ) , 6) ) #tan( 210 ) =  0.57735
print( "tan( 225 ) = ", round(  math.tan( math.radians( 225 ) ) , 6) ) #tan( 225 ) =  1.0
print( "tan( 240 ) = ", round(  math.tan( math.radians( 240 ) ) , 6) ) #tan( 240 ) =  1.732051
print( "tan( 270 ) = ", round(  math.tan( math.radians( 270 ) ) , 6) ) #tan( 270 ) =  5443746451065123.0
print( "tan( 300 ) = ", round(  math.tan( math.radians( 300 ) ) , 6) ) #tan( 300 ) =  -1.732051
print( "tan( 315 ) = ", round(  math.tan( math.radians( 315 ) ) , 6) ) #tan( 315 ) =  -1.0
print( "tan( 330 ) = ", round(  math.tan( math.radians( 330 ) ) , 6) ) #tan( 330 ) =  -0.57735
print( "tan( 360 ) = ", round(  math.tan( math.radians( 360 ) ) , 6) ) #tan( 360 ) =  -0.0
print( "tan( 390 ) = ", round(  math.tan( math.radians( 390 ) ) , 6) ) #tan( 390 ) =  0.57735

ソースコードはこちらから