http://acm.hdu.edu.cn/showproblem.php?pid=1714
求解红色部分的面积
分析:在第一象限内:
设OP和椭圆的交点是(x1,y1),面积的积分:
同时:
所以,
再求解交点:
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
int t;
double a,b,x,y;
double k,x1,s;
cin>>t;
while(t--){
scanf("%lf%lf%lf%lf",&a,&b,&x,&y);
x=fabs(x);
y=fabs(y); // 转成第一象限1
k=y/x;
x1=a*b/sqrt(b*b+a*a*k*k);
s=a*b/2*acos(x1/a);
printf("%.2lf\n",s);
}
return 0;
}