百度之星之I:地图的省钱计划

简介: 百度地图有自己的一套坐标系(你可以把它看作一个笛卡尔坐标系),在这套坐标系里,一个标准单位为1km。而在这坐标系上针对地理信息进行标注的数据,大多数时候是通过购买的方式完成的。为了节约数据更新的成本,数据组里的鑫哥想出了一个好主意——自己测数据。

I:地图的省钱计划


时间限制:


1000ms


内存限制:


65536kB


描述


百度地图有自己的一套坐标系(你可以把它看作一个笛卡尔坐标系),在这套坐标系里,一个标准单位为1km。而在这坐标系上针对地理信息进行标注的数据,大多数时候是通过购买的方式完成的。为了节约数据更新的成本,数据组里的鑫哥想出了一个好主意——自己测数据。

鑫哥按照他的预想开始实验;在每组试验中,鑫哥选取了三个已经被准确标注在百度地图的坐标系里的移动运营商的基站作为信号接收点(这里可以准确的得到信号的接收时间信息)。当信号接收点附近的用户手机签到时,三个信号接收点就会先后接收到这个信号,并可以准确的知晓接收到信号的时间(将第一个信号点接收到信号的时间记为0秒时刻)。由此,我们就可以确定用户手机签到的位置的在地图的准确坐标了。

现在已知以下数据:

1.三个信号接收点在百度地图坐标系中的具体坐标(x1,y1), (x2,y2), (x3,y3);

2.三个信号点得到用户发出的信号的时间t1, t2, t3(t1,t2, t3 ≥ 0),单位s; t1, t2, t3至少有一个数为0;

3.信号的转播速度C,单位m/s;

请帮助鑫哥写个程序,计算下用户发出信号的位置在百度地图坐标系内的坐标(这个点是唯一的)。


输入


输入包含多组数据,每组数据格式如下:

C

x1 y1 x2 y2 x3 y3

t1 t2 t3

最后一组数据为0,表示输入结束。


输出


针对每组测试数据,请先输出这个组的编号(第n组就是输出“Case n:”);然后换行输出信号发出点的坐标(x,y) 。x,y应该由空格分隔,并被舍入到小数点后第六位。


样例输入


1000


0 1 1 1 2 1


0 0.6 1.6


1000


0 0 0 1 1 0


0.4142135 0 0


1000


0 0 1 0 2 1


0 0.414213562373 1


1000


0 0 0 -1 0 1


0 0 1


1000


0 0 0 1 0 -1


0 1 0


1000


0 0 1 0 -1 0


0 1 0


1000


0 0 -1 0 1 0


0 0 1


100


0 0 0 1 1 0


0 10 10


0


样例输出


Case 1:


1.000000 1.000000


Case 2:


0.200000 1.000000


Case 3:


0.000000 1.000000


Case 4:


0.000000 -0.500000


Case 5:


0.000000 -0.500000


Case 6:


-0.500000 0.000000


Case 7:


-0.500000 0.000000


Case 8:


0.000000 0.000000

#include<iostream>  

#include<cstdio>  

#include<cmath>  

using namespace std;  

double x[4], y[4], t[4];  

     

void solve(int i , int j , int k)  

{  

      doublex2, y2, x3, y3, l2, l3 , sum , fai , cita , r , m , n;  

      doublea,b,c;

      x2= x[j] -x[i] , y2 = y[j] -y[i];  

      x3 = x[k] -x[i] , y3 = y[k] -y[i];  

      l2 = t[j] -t[i] , l3 = t[k] -t[i];  

 

      m = x2*x2 + y2*y2 - l2*l2 , n = x3*x3 +y3*y3 - l3*l3;  

 

      a = m*y3-n*y2, b = m*x3-n*x2, c = m * l3- n * l2;  

      fai = atan2(b, a) ;  

      sum = asin(- c/sqrt(a*a+b*b+1e-15));    

 

      cita = sum -fai;      

      if(abs(m)>abs(n))

      {

             r= m/(l2 + x2 *cos(cita) + y2 * sin(cita))/2;  

      }

      else

      {

             r= n/(l3 + x3 *cos(cita) + y3 * sin(cita))/2;  

      }

      if(r< 0)  

      {  

             sum= - sum + 3.141592653579;    

             cita= sum - fai;  

             if(abs(m)>abs(n))  

             {

                    r= m/(l2 + x2 *cos(cita) + y2 * sin(cita))/2;  

             }

             else

             {

                    r= n/(l3 + x3 *cos(cita) + y3 * sin(cita))/2;

             }

      }  

      printf("%.6f %.6f\n", r * cos(cita) + x[i], r * sin(cita) +y[i]);  

}  

 

 

int main(void)  

{  

      intnum = 1;  

      doublec;  

      while(scanf("%lf",&c)!=EOF)  

      {  

             c/=1000;  

             if(abs(c) < 1e-6)

             {

                    break;

             }

 

             scanf("%lf%lf %lf %lf %lf %lf", x, y, x+1, y+1, x+2, y+2);  

             scanf("%lf %lf %lf", t, t+1,t+2);  

             printf("Case%d:\n", num++);  

           

             t[0] *= c;  

             t[1] *= c;  

             t[2] *= c;  

             solve(0, 1, 2);  

      }  

      return0;  

 

}

 注意:1.感觉此题不好理解,不知如何入手。

————————————————

版权声明:本文为CSDN博主「铭毅天下」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/laoyang360/article/details/7621276

相关文章
|
定位技术
百度地图:监听地图缩放自动显示和隐藏的富文本标签
百度地图:监听地图缩放自动显示和隐藏的富文本标签
197 0
|
搜索推荐 定位技术
百度地图开发mapStyle个性化地图styleJson的配色解决方案
百度地图开发mapStyle个性化地图styleJson的配色解决方案
646 0
|
数据可视化 搜索推荐 JavaScript
数据可视化大屏百度地图区域掩膜MapMask实现地图指定区域非省市县行政区显示的实战案例解析(JavaScript API GL、个性化地图定制、指定区域经纬度拾取转化)
数据可视化大屏百度地图区域掩膜MapMask实现地图指定区域非省市县行政区显示的实战案例解析(JavaScript API GL、个性化地图定制、指定区域经纬度拾取转化)
936 0
|
19天前
|
XML 搜索推荐 定位技术
向百度提交网站地图Sitemap
我知道可以通过Google 网站管理员工具向 Google 提交网站地图 Sitemap,那么我如何向百度、雅虎等其他搜索引擎提交呢?我是否需要制作一个类似 Google Sitemap 一样的 baidu Sitemap 呢?
20 1
|
3月前
|
JavaScript 前端开发 定位技术
百度地图JavaScript API v2.0创建地图
百度地图JavaScript API v2.0创建地图
69 0
|
移动开发 JavaScript 定位技术
百度地图开发:地图调起API(Web端)使用终点经纬度直接调用百度地图导航信息的解决方案
百度地图开发:地图调起API(Web端)使用终点经纬度直接调用百度地图导航信息的解决方案
358 0
|
6月前
|
IDE 定位技术 开发工具
百度地图如何创建一个属于自己的地图,附加到项目中?
百度地图如何创建一个属于自己的地图,附加到项目中?
114 0
|
定位技术
百度地图使用 ->展示地图一
百度地图使用 ->展示地图一
95 0
|
搜索推荐 数据可视化 JavaScript
数据可视化大屏百度地图绘制行政区域标注实战案例解析(个性化地图、标注、视频、控件、定位、检索)
数据可视化大屏百度地图绘制行政区域标注实战案例解析(个性化地图、标注、视频、控件、定位、检索)
209 1
|
定位技术
百度地图开发(8):地图覆盖物实现纵横交错的交通网络
百度地图开发(8):地图覆盖物实现纵横交错的交通网络
48 0
百度地图开发(8):地图覆盖物实现纵横交错的交通网络