度(度数法)⇔ラジアン(弧度法)の変換

度とラジアンの単位変換の方法の解説ページアイキャッチ

このページでは、度の単位を下記のように変換する方法について解説します。

  • 度 ⇒ ラジアン
  • ラジアン ⇒ 度

おそらく頭の中で角度を考える場合、90度や180度など、角度の単位としては「度」の方が扱いやすい人の方が多いのではないかと思います。

ただ、C言語 で sin 関数や cos 関数などの三角関数を利用する場合、引数に指定する角度の単位は「ラジアン」である必要があります。従って、プログラミングを行う際には角度の単位を「度 ⇒ ラジアン」に変換してから sin 関数や cos 関数の引数に指定やる必要があります。

逆に、atan 関数などで求められる角度の単位は「ラジアン」ですので、私たちが考えやすい角度の単位の「度」で扱うためには、単位を「ラジアン ⇒ 度」に変換する必要があります。

このページでは、こういった角度の単位の変換を行う際の具体的な方法について解説していきたいと思います。

ソースコードの例や関数名などは C言語 を前提にしたものになっていますが、考え方自体はどのプログラミング言語でも適用できますし、プログラミングだけでなくどの分野においても活かせると思います。

度 ⇒ ラジアン:π/180 を掛ける

角度の単位の「度 ⇒ ラジアン」の変換は、角度に対して π/180 を掛けることで実現することができます。

度 ⇒ ラジアン
radian = degree * (π/180)

ですので、角度を「度」の単位で扱っている場合、三角関数などを実行する際には、その角度に対して π/180 での掛け算を行なった結果を引数に指定してやれば良いです。 

例えば下記は、変数 degreeπ/180 を掛けて単位を「ラジアン」に変換する例になります。

度からラジアンへの変換の例
#include <stdio.h> /* printf */
#include <math.h> /* M_PI */

int main(void) {
    double degree;
    double radian;

    degree = 30;

    radian = degree * (M_PI / 180);

    printf("degree:%f\n", degree);
    printf("radian:%f\n", radian);
    
    return 0;
}

M_PImath.h で定義されている π の値になります。下記ページで解説しているように、環境によっては使えない可能性もあります。

C言語で円周率を扱う方法の解説ページアイキャッチC言語で円周率πを扱う方法

M_PI が使えない or M_PI を使いたくないような場合は、下記のように PI を別途定義し、それを π の値として使用すれば良いです(次の「ラジアン ⇒ 度」の変換においても同様です)。

度からラジアンへの変換の例(M_PI使わない)
#include <stdio.h> /* printf */

#define PI (3.14159265358979323846264338327950288)

int main(void) {
    double degree;
    double radian;

    degree = 30;

    radian = degree * (PI / 180);

    printf("degree:%f\n", degree);
    printf("radian:%f\n", radian);
    
    return 0;
}

ラジアン ⇒ 度:180/π を掛ける

角度の単位の「ラジアン ⇒ 度」の変換は、角度に対して 180/π を掛けることで実現することができます。要は「度 ⇒ ラジアン」の変換時と逆のことを行います。

ラジアン ⇒ 度
degree = radian * (180/π)

ですので、例えば atan 関数等で得られた角度の単位を「度」に変換したいような場合、その角度に対して 180/π での掛け算を行なってやれば良いです(atan 関数で得られる角度の単位はラジアン)。 

例えば下記は、変数 radian180/π を掛けて単位を「度」に変換する例になります。

ラジアンから度への変換の例
#include <stdio.h> /* printf */
#include <math.h> /* M_PI/atan */

int main(void) {
    double degree;
    double radian;

    /* 傾き1の直線の角度を取得 */
    radian = atan(1);

    degree = radian * (180 / M_PI);

    printf("radian:%f\n", radian);
    printf("degree:%f\n", degree);
    
    return 0;
}

ちなみに上記で使用している角度を求める関数 atan については下記ページで解説していますので興味があればぜひ読んでみてください。

【C言語】atan関数とatan2関数について解説(傾きor座標から角度を求める関数)

スポンサーリンク

掛け算に用いる分数を思い出しやすくするためのポイント

おそらくこのページに来てくださった方の中には「なんとなく掛け算する必要があることは覚えてるけど具体的に何を掛ける必要があるかを忘れてしまった…」という方が多いのではないでしょうか?

私も昔は変換時に毎回ググってました…。

一応私なりに「覚えておくと変換時に掛ける必要のある分数を思い出しやすくなるポイント」を考えてみましたので、最後にこれらのポイントについて紹介しておきたいと思います。

分母と分子は同じ角度

まず下記の単位の変換を行うためには、変換元の角度に対して「分数」の掛け算を行う必要があります。

  • 度 ⇒ ラジアン
  • ラジアン ⇒ 度

この掛け算に用いる分数の「分母」と「分子」の値を忘れることが多い方は、「分数の分母と分子は同じ角度である必要がある」ことを覚えておくと、分母と分子の値を思い出しやすくなると思います。

ただし、分母と分子は「同じ角度」ではありますが、単位が異なります。一方の単位が度で、もう一方の単位がラジアンである必要があります。

もし違う角度である値を分母と分子とした場合、掛け算を行なった場合に単位だけではなく「角度そのものまで変化する」ことになってしまいます。なので、分母と分子は「同じ角度」である必要があります。

単位だけでなく角度まで変わってしまう例

同じ角度として一番覚えやすいのは「180 度 = π ラジアン」だと思います。両方とも円の半周分を表す角度です。一番覚えやすいので、このページでは 180 度と π ラジアンを用いて変換を行う例を示しています。

が、円の一周分の角度で「360 度 = ラジアン」の方が分かりやすい方は、この2つの値を分母と分子とした分数により変換を行うのでも良いです。これでも正しく変換することができます(結局約分したら「180 度 = π ラジアン」と同じになりますからね)。

いずれにせよ、大事なのは「分数の分母と分子は同じ角度である必要がある」ことを覚えておくことです。

これを覚えておけば、例えば変換を行う際に 2π / 180π / 180π / 360 のどれを掛ければ良いのか迷ってしまった場合、「分母と分子が同じ角度なのはどれか」を考えれば、自然と π / 180 が正しいことを思い出すことができます。

分子に変換先の単位の角度を指定

ただ、分母と分子に用いる値が思い出せたとしても、実際に変換を行う際にどちらを分子にし、どちらを分母にすれば良いかを迷うことも多いです。

迷わないようにするためには、「分子に指定するのは変換先の単位の角度」の方であることを覚えておきましょう。

これを覚えておけば、例えばラジアンに変換する際には(つまり変換先の単位はラジアン)、単位がラジアンである π を分子にすれば良いことをすぐに思い出すことができます。

スポンサーリンク

まとめ

このページでは、角度の単位を下記のように変換する方法について解説しました!

  • 度 ⇒ ラジアン
  • ラジアン ⇒ 度

「度 ⇒ ラジアン」の単位変換は角度に π / 180 を掛けることで、「ラジアン ⇒ 度」の単位変換は角度に 180 / π を掛けることで実現可能です。

掛ける分数をすぐに忘れてしまう方は、下記の2点だけでも覚えておくと思い出しやすくなると思いますので、ぜひこれらを意識するようにしてみてください!

  • 分数の分母と分子は同じ角度である必要がある
  • 分子に指定するのは変換先の単位の角度である