文章
1
粉丝
171
获赞
4
访问
2.9k
a(x1,y1),b(x2,y2)两个点的公式为(y2-y1)*x-(x2-x1)*y+y1*x2-y2*x1=0 (一次函数)。
A=y2-y1,B=x1-x2,C=y1*x2-y2*x1,ab两点距离为√A^2+B^2,c(x3,y3)到ab的距离为|A*x3+B*y3+C|/√A^2+B^2。
所以三角形的面积等于|A*x3+B*y3+C|/2。(这种属于笨办法,不过运算量要小一些)
x1-->a1,y1-->a2,x2-->b1,y2-->b2,x3-->c1,y3-->c2
#include<stdio.h>
#include<math.h>
int main(){
double a1[10000],a2[10000],b1[10000],b2[10000],c1[10000],c2[10000];
int i;
double x,y,z,s;
for(i=0;(scanf("%lf%lf%lf%lf%lf%lf",&a1[i],&a2[i],&b1[i],&b2[i],&c1[i],&c2[i]))!=EOF;i++){
y=b2[i]-a2[i];
x=b1[i]-a1[i];
z=a2[i]*b1[i]-b2[i]*a1[i];
s=fabs(y*c1[i]-x*c2[i]+z)/2;
printf("%.2lf\n",s);
...
登录后发布评论
这个老六,哈哈