hud1071 The area

原题链接:click here

题目大意:一个二次曲线与直线相交,交点已知。求它们围成的封闭区域的面积。

思路:利用交点求出曲线和和直线参数,得到曲线和直线方程,再利用定积分求面积。


设二次曲线方程为:y=a*X^2+b*x+c;(1)

x1=-b/2a;(2)(对称轴方程)

所以b=-2a*x1;(3)

将p1(x1,y1),p2(x2,y2)代入(1)式后再把(2)式代入整理可得:

a=(y2-y1)/(x2-x1)^2;(4)

c=y1-(a*x1*x1+b*x1);(5)

由(4)(3)(5)可知得a,b,c从而确定抛物线方程。

从p2到p3对y=a*x*x+b*x+c积分,再减去直线从p2到p3积分(为一个梯形面积,直接用梯形面积公式可简化运算)就是所求阴影部分面积。

代码如下:

#include<stdio.h>
int main()
{
    double x1,x2,x3,y1,y2,y3,a,b,c,s1,s2,s3,s;
    int t;
    while(scanf("%d",&t)!=EOF)
    {
        while(t--)
        {
            scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3);
            /*计算二次曲线的三个系数*/
            a=(y2-y1)/((x2-x1)*(x2-x1));
            b=-2*a*x1;
            c=y1-(a*x1*x1+b*x1);
            s1=(y2+y3)*(x3-x2)/2.0;//直线从p2到p3的积分正好是一个梯形面积,直接用公式计算
            s2=(a/3.0)*x2*x2*x2+(b/2.0)*x2*x2+c*x2;//定积分求面积
            s3=(a/3.0)*x3*x3*x3+(b/2.0)*x3*x3+c*x3;
            s=s3-s2-s1;
            printf("%.2lf\n",s);

        }
    }
    return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值