椭圆相交问题_第1页
椭圆相交问题_第2页
椭圆相交问题_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

椭圆相交问题时间限制(普通/Java):5000MS/10000MS 运行内存限制:65536KByte描述最近天文学家发现了一对奇特的卫星,分别命名为A和B。我们知道,卫星通常以椭圆轨道移动,A和B也一样。但是他们的轨迹非常特殊:(1) 他们的轨迹在同一平面,具有相同的圆心。(2) 连接两个焦点组成的部分互相垂直。如果我们将中心标为O,A的焦点为F1和F2,我们就可以建立笛卡尔坐标,0点为圆心,通过F1和F2的为X轴。下面是一个例子:天文学家想了解卫星更多东西,他们决定计算其相交面积。不幸的是,计算相交的面积有点难,且他们不会计算,他们求助于天才程序员的你帮忙。现在你的任务是:给定两个满足上述要求的椭圆,计算相交面积。输入输入包括多个测试用例。第一行为测试用例个数n(n<=100)。在每一个测试用例包含两行,第一行A的描述轨迹,另一行描述B的轨迹,每一个描述包含两个整数a,b(a,bv=100)表示椭圆方程X2/a2+Y2^2=i,并保证A的焦点在X轴上,B的焦点在Y轴上。输出对每个测试用例,用一行输出相交面积,用实型数表示,要求精确到小数点后三位。样例输入12112样例输出3.709下面是我自己用积分的方法编的程序,可惜提交超时了,主要是在计算积分的时候,这个循环的次数太多了for(i=1;iv=444600;i++);可是最近我从别的地方找到一种算法,一下就搞定了,但是其中有些地方非常不明白,想请教您。#include<stdio.h>#include<math.h>//#definePI3.141592653589793constdoublePI=acos(-1.0);intmain(){inttest,a1,b1,a2,b2,i,j;floatarea,x,k,q;scanf("%d",&test);while(test--){area=0.0;scanf("%d%d",&a1,&b1);scanf("%d%d",&a2,&b2);if(a2>=a1){area=PI*a1*b1;}elseif(b1>=b2){area=PI*a2*b2;}else{x=sqrt(fabs((double)(a1*a1*a2*a2*(b2*b2-b1*b1))/(double)(a1*a1*b2*b2-a2*a2*b1*b1)));k=x;q=(a2-x)/444600;for(i=1;i<=444600;i++){area+=(q*(b2*1.0/a2))*(sqrt(fabs((double)(a2*a2-x*x))));x+=q;}q=k/444600;x=0;for(i=1;i<=444600;i++){area+=(q*(b1*1.0/a1))*(sqrt(fabs((double)(a1*a1-x*x))));x+=q;}}printf("%.3f\n",4*area);}return0;}下面是我在网上找的一种算法,其中那个theta1和theta2用反正弦函数求的不知道什么东西?红色标记的部分是想请你帮忙解释的部分.#include<stdio.h>#include<math.h>constdoublepi=acos(-1.0);〃计算圆周率doublea1,b1,a2,b2;//a1,a2和b1,b2分别是两个椭圆的x轴和y轴doublesolve(){if(a1<=a2)returnpi*a1*b1;〃椭圆B包含椭圆Aif(b1>=b2)returnpi*a2*b2;〃椭圆A包含椭圆Bdoubleans=0.0;〃相交部分面积doublex,y;〃两椭圆在第一象限的交点坐标x=sqrt((b1*b1-b2*b2)*a1*a1*a2*a2/(b1*b1*a2*a2-b2*b2*a1*a1));y=sqrt((a1*a1-a2*a2)*b1*b1*b2*b2/(a1*a1*b2*b2-b1*b1*a2*a2));//下面计算相交部分面积doubletheta1=asin(y/b1),theta2=asin(y/b2);ans=a1*b1*((pi-2*theta1)+sin(2*theta1))+a2*b2*(2*theta2+sin(2*theta2))-4*x*y;returnans;}intmain(){intn;scanf("%d",&n);whi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论