C语言实现三维空间三角形面积计算
本题考察的是三维空间中三角形的计算,需要用到勾股定理和海伦公式。
首先定义一个三维坐标点的结构体,包括 'x'、'y'、'z' 三个坐标值。
struct SPoint //点
{
double x;
double y;
double z;
} a1, a2, a3;
接着定义三个变量 'a'、'b'、'c' 分别表示三条边的长度,'P' 表示半周长,'s' 表示面积。
double P = 0, s = 0, a = 0, b = 0, c = 0;
接着从标准输入中读入三个点的坐标值。
scanf('%lf%lf%lf', &a1.x, &a1.y, &a1.z, &a2.x, &a2.y, &a2.z, &a3.x, &a3.y, &a3.z);
计算三条边的长度。
a = sqrt((a1.x - a2.x) * (a1.x - a2.x) + (a1.y - a2.y) * (a1.y - a2.y) + (a1.z - a2.z) * (a1.z - a2.z));
b = sqrt((a2.x - a3.x) * (a2.x - a3.x) + (a2.y - a3.y) * (a2.y - a3.y) + (a2.z - a3.z) * (a2.z - a3.z));
c = sqrt((a1.x - a3.x) * (a1.x - a3.x) + (a1.y - a3.y) * (a1.y - a3.y) + (a1.z - a3.z) * (a1.z - a3.z));
计算半周长。
P = (a + b + c) / 2.0;
计算面积。
s = sqrt(P * (P - a) * (P - b) * (P - c));
最后输出面积。
printf('%.2lf', s);
原文地址: https://www.cveoy.top/t/topic/nHSS 著作权归作者所有。请勿转载和采集!