永发信息网

C语言中有关三角形面积的求解~~~

答案:1  悬赏:70  手机版
解决时间 2021-03-27 01:10
  • 提问者网友:雨不眠的下
  • 2021-03-26 15:32
C语言中有关三角形面积的求解~~~
最佳答案
  • 五星知识达人网友:醉吻情书
  • 2021-03-26 15:47
已知平面上三角形3个顶点坐标 x[3],y[3], 计算 3 角形面积:
#include
#include
double tri_area_2D(double x[3], double y[3]){
double a,b,c,s;
double dx1,dx2,dx3,dy1,dy2,dy3,dz1,dz2,dz3;
double area;
dx1 = x[1]-x[0]; dx2 = x[2]-x[1]; dx3 = x[0]-x[2];
dy1 = y[1]-y[0]; dy2 = y[2]-y[1]; dy3 = y[0]-y[2];
a = sqrt( dx1*dx1 + dy1*dy1 );
b = sqrt( dx2*dx2 + dy2*dy2 );
c = sqrt( dx3*dx3 + dy3*dy3 );
s = (a+b+c)/2.0;
area = sqrt(s * (s-a)*(s-b)*(s-c));
return area;
}
//已知空间三角形,3个顶点坐标 计算三角形面积:
double tri_area_3D(double x[3], double y[3], double z[3]){
double a,b,c,s;
double dx1,dx2,dx3,dy1,dy2,dy3,dz1,dz2,dz3;
double area;
dx1 = x[1]-x[0]; dx2 = x[2]-x[1]; dx3 = x[0]-x[2];
dy1 = y[1]-y[0]; dy2 = y[2]-y[1]; dy3 = y[0]-y[2];
dz1 = z[1]-z[0]; dz2 = z[2]-z[1]; dz3 = z[0]-z[2];
a = sqrt( dx1*dx1 + dy1*dy1 + dz1*dz1);
b = sqrt( dx2*dx2 + dy2*dy2 + dz2*dz2);
c = sqrt( dx3*dx3 + dy3*dy3 + dz3*dz3);
s = (a+b+c)/2.0;
area = sqrt(s * (s-a)*(s-b)*(s-c));
return area;
}

main( ){
double x[]={1,2,2},y[]={1,0,2},z[]={0,0,0};
printf("%lf ", tri_area_3D(x,y,z)); // 三维调用
printf("%lf ", tri_area_2D(x,y)); //二维调用
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯