[c言語] 関数を使って三角形の面積を求めてみよう!

C言語

今回は何回か前に習った関数を使って三角形の面積を求めていきたいと思います。

では早速やっていきましょう。

三角形の面積

三角形ABCを求めるのにも色々な公式があると思いますが、

例えば、$S={\large\frac{1}{2}}*底辺*高さ$、$S={\large\frac{1}{2}}*AB*AC*\sin(A)$

今回は座標の数値を使った

$$S=\frac{1}{2}\ {|(x_{1}-x_{3})(y_{2}-y_{3})-(x_{2}-x_{3})(y_{1}-y_{3}) |}$$

を利用していきます。

関数を使った三角形の面積求値

結構シンプルなので、早速サンプルコードを見てみましょう。

#include <stdio.h>
#include <math.h>

double calc_area(double x1,double y1,double x2,double y2,double x3,double y3){

  return fabs((x2-x1)*(y3-y1)-(y2-y1)*(x3-x1))/2;

}

int main(void){

  double x1,y1,x2,y2,x3,y3;
  printf("三点の座標を入力してください\n");

  printf("座標1: "); scanf("%lf",&x1); scanf("%lf",&y1);
  printf("座標2: "); scanf("%lf",&x2); scanf("%lf",&y2);
  printf("座標3: "); scanf("%lf",&x3); scanf("%lf",&y3);

  printf("三角形の面積は%fです\n",calc_area(x1,y1,x2,y2,x3,y3));

  return 0;

} 

/* 実行結果
三点の座標を入力してください
座標1: 0.0 0.0
座標2: 1.0 0.0
座標3: 0.0 1.0
三角形の面積は0.500000です
*/

calc_area関数でfabsという文字がありますが、これはdouble型とfloat型の絶対値を求める関数です。ちなみにint型はabs関数で求めることができます。

必ず#include <math.h>を忘れずに書いておきましょう。

あとmath.hをインクルードしたらコンパイルするときは最後に-lmを忘れずに入れておきましょう。

こんな感じですな。

今回は以上で終了となります。ありがとうございました。

コメント

タイトルとURLをコピーしました