Xcode
iOS
UIKit
SpriteKit
Swift

【Swift】120°は何ラジアン?(角度から弧度を計算する)

More than 1 year has passed since last update.

角度から弧度を計算するには

ビューを回転させたり、移動する方向を指定するとき、メソッドの引数は大抵が弧度法(ラジアン角)になっている。
そして、いつもラジアン格の計算方法を忘れてしまう。
70°回転させたい時は、何ラジアンなのか?
1回転(360°)なら、何ラジアンなのか?

忘れてしまうのは「理解していないこと」が原因だと、ずーっと感じていたのでここらで一旦、整理することにした。

Swiftにおける円周率

円周率π(パイ)は 3.1415927…


  • M_PI
    Darwin フレームワークで定義。Double型が返る。

  • Float.pi
    Swift標準ライブラリで定義(Swift3 ~)。Float型が返る。ただし、3.14159で丸められている。

必要な公式


円の円周の長さLを求める
直径 * 円周率π
以上。あとは考え方で理解すればいい!

理解の仕方

角度とは

分度器で測れる「いつもの角度」のこと。90°なら直角のあれ。

弧度法とは

円弧が長さ(L: Length)である時の角度rad(ラジアン)。つまり円周の長さLを求めることになる。

#計算する

半径(r: Radius)を1とする。
円周の長さは (半径r + 半径r)* 円周率π になるので、円周の長さ =

円を一周(360°)ならラジアン角radは、 になる(Swiftでは、2M_PIで定義されている)。
180°なら半分だから、πとなる
1°のラジアン角radは、π / 180で算出できる!

要するに

角度θのラジアン角radは、(π / 180) * θで算出できる!

メソッドにしてみると
func radianFrom(Angle angle: Int) -> CGFloat {
    return CGFloat(M_PI / 180 * Double(angle))
}

radianFrom(Angle: 180)