我和这题有缘吗?
知道三个点了 就可以求出直线和抛物线的方程
然后就是非常简单的二重积分求面积 ^_^
用抛物线的顶点公式y=a(x-x1)^2+y1外加另一个点x2算出a,然后对抛物线公式求积分,用积分的公式算出抛物线和x轴的面积,减去梯形的面积就行。
#include "stdio.h"
int main()
{
int n,i;
double e,f,g,h,l,r,a,b,c,k,m,area;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%lf %lf",&e,&f);
scanf("%lf %lf",&g,&h);
scanf("%lf %lf",&l,&r);
a=(h-f)/((e-g)*(e-g));
b=-2*e*(h-f)/((e-g)*(e-g));
c=f-e*e*(h-f)/((e-g)*(e-g))+e*2*e*(h-f)/((e-g)*(e-g));
k=(h-r)/(g-l);
m=h-g*(h-r)/(g-l);
area=a*l*l*l/3+(b-k)*l*l/2+(c-m)*l-a*g*g*g/3-(b-k)*g*g/2-(c-m)*g;
printf("%.2f\n",area);
}
return 0;
}
int main()
{
int n,i;
double e,f,g,h,l,r,a,b,c,k,m,area;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%lf %lf",&e,&f);
scanf("%lf %lf",&g,&h);
scanf("%lf %lf",&l,&r);
a=(h-f)/((e-g)*(e-g));
b=-2*e*(h-f)/((e-g)*(e-g));
c=f-e*e*(h-f)/((e-g)*(e-g))+e*2*e*(h-f)/((e-g)*(e-g));
k=(h-r)/(g-l);
m=h-g*(h-r)/(g-l);
area=a*l*l*l/3+(b-k)*l*l/2+(c-m)*l-a*g*g*g/3-(b-k)*g*g/2-(c-m)*g;
printf("%.2f\n",area);
}
return 0;
}