B2031 题解
HYdroKomide · · 题解
题意:
给出三个坐标,求这三个坐标组成三角形的面积。
思路:
不需要任何超过小学数学的知识(包括海伦公式)
我们发现,当这个三角形其中一个顶点位于原点
此时:
问题三角形
带入得:
简化得:
当
最终推出如下公式:
但是这一切都是在
综上,得出可以在所有条件下都成立的公式:
直接将此公式带入程序即可。
程序如下:
#include<cstdio>
using namespace std;
double x1,y1,x2,y2,x3,y3;//定义变量
double abs(double a){return a>0?a:-a;}
int main(){
scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3);//输入
printf("%.2lf\n",abs((x1-x3)*(y1-y3)-(x2-x3)*(y2-y3))/2);//直接套公式输出,注意要保留2位小数
return 0;
}
THE END
P.S. 公式纯为手推,如有逻辑疏忽欢迎指出。