文章

1

粉丝

171

获赞

4

访问

2.9k

头像
运用一下过去的数学知识
P1125 兰州大学/西北工业大学2019机试
发布于2023年3月4日 03:00
阅读数 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);
  ...

登录查看完整内容


登录后发布评论

1 条评论
帅就一个字
2023年4月21日 22:30

这个老六,哈哈

赞(0)