给出三点的坐标,求三角形面积(法一:海伦公式,法二:向量法(。。。还没搞懂))

您所在的位置:网站首页 坐标计算距离公式软件有哪些 给出三点的坐标,求三角形面积(法一:海伦公式,法二:向量法(。。。还没搞懂))

给出三点的坐标,求三角形面积(法一:海伦公式,法二:向量法(。。。还没搞懂))

2024-07-11 16:27| 来源: 网络整理| 查看: 265

三角形面积

时间限制:3000 ms  |  内存限制:65535 KB

难度:2

描述

给你三个点,表示一个三角形的三个顶点,现你的任务是求出该三角形的面积

输入

每行是一组测试数据,有6个整数x1,y1,x2,y2,x3,y3分别表示三个点的横纵坐标。(坐标值都在0到10000之间) 输入0 0 0 0 0 0表示输入结束 测试数据不超过10000组

输出

输出这三个点所代表的三角形的面积,结果精确到小数点后1位(即使是整数也要输出一位小数位)

样例输入

0 0 1 1 1 3 0 1 1 0 0 0 0 0 0 0 0 0

样例输出

1.0

0.5

 

这是个简单的数学几何题,我的做法是求出三条边的长度,然后用 海伦公式,求出面积,这个可能麻烦一点,但是比较稳当,大家都会

另外一种好方法,就是向量积的知识了:以两个相交向量为临边的 平行四边形的面积是这两个向量的向量积的模,也就是等于他们模的乘积乘上

他们夹角的正弦值。

代码:

海伦公式:

 

假设在平面内,有一个三角形,边长分别为a、b、c,三角形的面积S可由以下公式求得:

S=√[p(p-a)(p-b)(p-c)]

而公式里的p为半周长:

p=(a+b+c)/2

 

#include #include int main() { double x1,y1,x2,y2,x3,y3,a,b,c,s,p; while(~scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3)&&(x1||x2||x3||y1||y2||y3)) { a=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); b=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3)); c=sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3)); p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c)); printf("%.1lf\n",s); } return 0; }

代码;

#include int main() { double x1,y1,x2,y2,x3,y3,s; while(~scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3)&&(x1||x2||x3||y1||y2||y3)) { s=(x1*y2+y1*x3+x2*y3)-(x1*y3+y2*x3+y1*x2); if(s


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3