空間上の四面体の体積
C言語で空間上の四面体の体積を求めるプログラムを作りたいんですが、どうすればいいのかわかりません。
構造体を使って空間上(三次元)の4点A,B,C,Dの座標を定義するのですが。
四面体の求め方もわかりません。ヘロンの公式じゃ求められませんよね(^^;
空間上の三角形の面積を求めるプログラムを作ってみました。
少しでも参考になれば幸いです。
よろしくお願いします。
#include <stdio.h>
#include <math.h>
int main(void)
{
double AB, BC, CA, s, m;
struct zahyo
{
double x;
double y;
double z;
}A, B, C;
scanf("%lf %lf %lf",&A.x,&A.y,&A.z);
scanf("%lf %lf %lf",&B.x,&B.y,&B.z);
scanf("%lf %lf %lf",&C.x,&C.y,&C.z);
AB=sqrt((A.x-B.x)*(A.x-B.x)+(A.y-B.y)*(A.y-B.y)+(A.z-B.z)*(A.z-B.z));
BC=sqrt((B.x-C.x)*(B.x-C.x)+(B.y-C.y)*(B.y-C.y)+(B.z-C.z)*(B.z-C.z));
CA=sqrt((C.x-A.x)*(C.x-A.x)+(C.y-A.y)*(C.y-A.y)+(C.z-A.z)*(C.z-A.z));
printf("AB=%lf\nBC=%lf\nCA=%lf\n",AB,BC,CA);
s=(AB+BC+CA)/2;
m=sqrt(s*(s-AB)*(s-BC)*(s-CA));
printf("m=%lf\n",m);
return 0;
}
お礼
正解!