⑴ 3 つの 3 次元位置ベクトルを引数にとり,それらを頂点
とする三角形の面積を算出する以下の関数を作成しなさ
い(1 行で済みますが,わざわざ面積を求める関数を作成
することとし,main の中で直接面積を算出することはし
ないでください).
double Area(Vec3 t[3])
⑵ 頂点ベクトルの z の値を 0 として xy 平面内に制限しな
さい.また,0 から 1 までの値を発生する一様乱数
drand48() を用いて,3 つの頂点の位置座標を算出しな
さい.
⑶ 試行回数は 10^6 回としなさい.
⑷ 一様乱数の初期化関数 srand48(seed) の seed には53を与えなさい.
⑸ 作成する関数は Area() と main() だけとし,ベクトルの
計算には vector.h で定義された関数群を用いること(イ
ンクルードする).
発生している問題・エラーメッセージ
ここから先をどうしたら良いのかわかりません。
エラーメッセージ
この時点での実行結果は
$ ./a
0.323350
0.093197
0.233986
となっています。
該当のソースコード
#include <stdio.h> #include <stdlib.h> #include <time.h> #include "vector.h" double Area(Vec3 t[3]) {Vec3 va,vb; double S; va=vsub(t[1],t[0]); vb=vsub(t[1],t[0]); S=vabs(voprod(va,vb))/2; return S; } int main(int argc, char **argv) { int i, seed = (53); if (argc > 1) seed = atoi(argv[1]); srand48(seed); for (i = 0; i < 3; i++) printf("%f\n", drand48()); return 0; }
試したこと
この時点での実行結果は
$ ./a
0.323350
0.093197
0.233986
となっており3つの頂点の位置座標を求めることはできていると思います。
しかしここから先の「試行回数を10^6回行う」方法と、三角形の面積を算出する方法がわかりません。
どうか教えていただけると嬉しいです。よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
Cプログラミングでemacsを使用しています。
ここにより詳細な情報を記載してください。