问题 1421. -- 签到

1421: 签到

时间限制: 1 Sec  内存限制: 128 MB  Special Judge
提交: 48  解决: 11
[提交][状态][讨论版]

题目描述

注意这不是签到题

x大学某些老师喜欢使用带定位的小程序进行签到,而qkoqhh由于奔波忙碌经常无法完成。请你帮助qkoqhh解决一个问题。 

为简化问题,qkoqhh把地球视为一个半径为1的圆球。签到时,老师设定了一个签到区域为中心在经纬度lon1,lat1,距离r1的圆;而qkoqhh此时处在lon2,lat2位置处,他的定位误差圈距离为r2。此处r1、r2指的是经过球面上两点的距离。若设定的区域和误差圈有重叠区域,就会被判断为签到成功。

qkoqhh发现今天不仅可以签到成功,而且自己的误差圆和设定圆刚好有两个交点,请你求出这两个交点的位置。

输入

输入包含多组数据,总共不超过100组数据,以EOF结束

之后每组数据输入包括两行,每行三个实数

格式为

lon1 lat1 r1

lon2 lat2 r2

代表上述题目中的经纬度和距离


其中经度-180<=lon<180, 纬度 0<=lat<90,半径 0<r<=pi/4

正数代表东经和北纬

输入保证两个圈有且仅有两个交点

输出

对于每组数据
输出包括两行,每行为三个范围在[-1,1]的实数,意义如下:


由于接近南北极位置处经度误差太大,所以请你输出两个交点在三维空间中的实际坐标。按z坐标从小到大输出,保证结果z不同。

这里规定赤道与本初子午线交点坐标为(1,0,0),东经90度北纬0度坐标为(0,1,0),北极坐标为(0,0,1)

你的答案与实际答案绝对误差不超过1e-6均视为正确

样例输入

0 45 0.7853981633974483
90 45 0.7853981633974483
0 45 0.7853981633974483
-90 45 0.7853981633974483

样例输出

0.666667 0.666667 0.333333
0.000000 0.000000 1.000000
0.666667 -0.666667 0.333333
0.000000 0.000000 1.000000

提示

样例1第一组数据如图所示


可能不会用到的参考资料



https://en.wikipedia.org/wiki/Conformal_map

来源

[提交][状态][讨论版]