题意:给定三个点的坐标,求由这三个点构成的三角形面积
题解:直接求解会存在精度误差。由于题目保证是直角三角形,我们可以考虑用向量法,即叉乘公式求解。
当然,假设我们求出的两条直角边长度在没有开根号的情况下是x^2和y^2,那么我们可以选择将这两部分直接相乘再开根号可以有效避免误差。题解仅展示叉乘做法。
AcCode:
#include <bits/stdc++.h>
using namespace std;
int main() {
int a,b,c,d,e,f;
cin>>a>>b>>c>>d>>e>>f;
int x=a-c,y=b-d;
int xx=a-e,yy=b-f;
int ans=abs(x*yy-xx*y)/2;
cout<<ans;
}