二次函数积分面积【数学】
题目:现在有一条二次曲线,直到这条二次曲线的顶点P,还知道这条曲线上的一点B,B点相对于对称轴的对称点是A点。
让你求二次曲线与AB连线围成的面积。【简单积分】【韦达定理:x1+x2=-b/a; x1*x2=c/a 】【平移】

如上图所示:
代码:
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <iostream>
#include <string>
#include <algorithm>
#define LL long long int
using namespace std;
struct point
{
    double x, y;
};
int main()
{
    point p, b; //p点是顶点坐标 b点是线段上一点
    point a;
    while(~scanf("%lf %lf %lf %lf", &p.x, &p.y, &b.x, &b.y))
    {
        a.x=-1.0*b.x;
        a.y=b.y; //对称点
        //根据积分的特性 在任意位置进行的积分 不一定等于面积
        //
        double dd, ff;
        dd=p.x-0.0; // dd<0 在y轴左边 否则右边
        ff=b.y-0.0; // ff<0 在x轴下边 否则上边
        //修改点坐标
        if(dd<=0.0)
        {
            p.x=0.0;
            a.x+=dd; b.x+=dd;
        }else{
            p.x=0.0;
            a.x-=dd; b.x-=dd;
        }
        if(ff<=0.0)
        {
            a.y=0.0; b.y=0.0;
            p.y+=ff;
        }else{
            a.y=0.0; b.y=0.0;
            p.y-=ff;
        }//平移坐标
        double A, B, C; //方程的参数
        A = p.y/(-1.0*b.x*b.x);
        B = 0.0;
        C = p.y;
        double ans=0.0;
        ans = (1.0/3.0*A*b.x*b.x*b.x + C*b.x) - 0;
        ans = ans*2.0;
        printf("%lf\n", ans );
    }
    return 0;
}
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号