見出し画像

高校数学10分プログラミング(数学Ⅰ編 2.図形と計量)4日目「正弦定理、余弦定理を利用する」解説

マガジンリスト > 数学Ⅰ編 2.図形と計量 > 4日目 解説

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

正弦定理や余弦定理を利用して三角形の外接円を描くプログラムを作成することができたでしょうか。

解答例

ヒントの手順①で課題としていた$${\cos \mathrm{A}}$$は、余弦定理を用いると、

$$
\cos \mathrm{A} = \frac{b^2 + c^2 - a^2}{2bc}
$$

となります。また、手順②で課題としていた外接円の半径$${R}$$は、正弦定理を用いて、

$$
R=\frac{a}{2 \sin \mathrm{A}}
$$

となります。これらの結果を用いて、ソースコード1に追記していくと、三角形の外接円を描くプログラムはソースコード2のようになります。

// 辺の長さの比が4,5,6の三角形に外心と外接円を描く
void setup(){
  size(650, 650); // キャンバスの大きさを指定する
  translate(width/2, height/2); // 座標の中心をキャンバスの中心に移動する
  scale(1,-1); // y軸正の向きを下向きから上向きに反転する
  background(255,255,255); // 背景を白色にする
  noFill(); // 図形の塗りつぶしなし
  noLoop(); // 繰り返し処理をしない
  
  // 三角形の辺の長さ
  float a, b, c; 
  a = 200.0;
  b = 250.0;
  c = 300.0;
  
  // cosA, sinA(余弦定理より)
  float cA = (b*b+c*c-a*a)/2.0/b/c;
  float sA = sqrt( 1.0-cA*cA );
  
  // 三角形の頂点の座標
  float A_x, A_y, B_x, B_y, C_x, C_y;
  A_x = 0.0;
  A_y = 0.0;
  B_x = c;
  B_y = 0.0;
  C_x = b * cA;
  C_y = b * sA;
  
  // 三角形を描く
  triangle(A_x, A_y, B_x, B_y, C_x, C_y);

  // 外接円の半径(正弦定理より)
  float R = a / 2.0 / sA;

  // 外心の座標
  float O_x, O_y;
  O_x = c / 2.0;
  O_y = sqrt(R*R-c*c/4.0);


  // 外接円を描画する
  stroke(0,0,255);
  circle(O_x, O_y, 2.0*R);
  // 外心を描画する
  strokeWeight(5.0);
  point(O_x, O_y);

}

ソースコード2 $${\triangle \mathrm{ABC}}$$に対して外接円を描くプログラム(完成版)

開発環境ウィンドウを開いて(スケッチ名を「drawCircumscribedCircle2」としています)、ソースコード2をそのテキストエディタ部分に記述して、実行してみると、実行ウィンドウのキャンバス上に、$${\triangle \mathrm{ABC}}$$に対して外接円と外心が描かれます(図4)。

図4 △ABCと外接円


本日は以上です。
明日は、ヘロンの公式を用いて三角形の面積を求めるプログラムについて考えていきたいと思います。

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

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

MK’s papa

この記事が気に入ったらサポートをしてみませんか?