見出し画像

高校数学10分プログラミング(数学Ⅱ編 3.三角関数)9日目「2直線のなす角を求める」解説

マガジンリスト > 数学Ⅱ編 3.三角関数 > 9日目 解説

本日の課題、おつかれさまでした。

2直線のなす角を求めるプログラムを作成することができたでしょうか。


解答例

今回の課題の2直線のなす角を求めるプログラム例を示します。

// 2直線のなす角を求める
void setup(){

  // 2直線の傾きと切片
  float m1, n1, m2, n2;
  
  // (1) 
  m1 = 3.0/2.0;
  n1 = 0.0;
  m2 = -5.0;
  n2 = 0.0;
  float theta1 = calc_formed_angle(m1,m2);
  println("(1):", theta1 + "°");
  
  // (2) 
  m1 = 2.0;
  n1 = 0.0;
  m2 = -3.0;
  n2 = 2.0;
  float theta2 = calc_formed_angle(m1,m2);
  println("(2):", theta2 + "°");
  
}

// 2直線のなす角を求める関数
float calc_formed_angle(
  float m1, // 1つ目の直線の傾き
  float m2  // 2つ目の直線の傾き
){
  float t = abs( (m1-m2)/(1.0+m1*m2) ); // tan θ
  float theta = atan(t); // なす角θ 
  return degrees(theta);
}

ソースコード1 2直線のなす角を求めるプログラム

ソースコード1で、2直線のなす角を求める関数 calc_formed_angle は、2つの直線の傾きを引数とし、返り値として2直線のなす角を度数(°)で返すようにしています。

Processingの開発環境ウィンドウを開いて(スケッチ名を「calc_formed_angles」としています)、ソースコード1をテキストエディタ部分に書いて実行すると、開発環境ウィンドウのコンソールに

(1): 45.0°
(2): 45.0°

と出力されます(図2)。

図2 スケッチ「calc_formed_angles」の実行結果


本日は以上です。
明日は、2倍角の公式を確かめるプログラムについて考えていきます。

明日もよろしくお願いします。

※今回の課題とその解答例について質問や疑問がある方は、本記事の下部にあるコメント欄からお願いします。

MK’s papa

いいなと思ったら応援しよう!