“塔康”導航系統


http://210.38.224.114:808/JudgeOnline/problem.php?id=1293

atan()函數求出來是弧度,*57.27

度數看清楚


塔康”(TACAN-Tactical Air Navigation System)是戰術空中導航系統的簡稱,由美國於1955年研製成功,後被法國、德國、英國、加拿大、日本、韓國等廣泛使用。主要用於爲艦載機提供從幾十千米到幾百千米距離範圍內的導航,保障飛機按預定航線飛向目標,機羣的空中集結,以及在複雜氣象條件下引導飛機歸航和進場等。

這是一種極座標無線電空中導航系統,當設定旗艦爲座標原點後,艦載飛機便可通過獲取與座標原點所成的角度和距離,從而進行定位。

    但某艦隊現在使用的定位系統是X-Y直角座標系的,艦隊指揮官需要你編寫一個程序計算艦載機目前所在的位置與旗艦的距離和相對於X軸所成的夾角的角度,以便使用“塔康”導航系統對艦載機進行導航。

Input

 測試數據有多組。第一行爲一個整數T,表示有T組測試數據。每組數據開頭輸入兩個整數x和y,表示旗艦的座標。然後輸入一個整數n(1 ≤ n ≤ 100),表示有n架艦載機,接下來有n行輸入,每行兩個整數xi和yi(-1000 ≤ xi,yi ≤ 1000),表示第i架艦載機的座標。

Output

輸出n行,每行輸出兩個實數,分別表示第n架艦載機與旗艦的相對於X軸所成的夾角的角度r(0 <= r <= 90)、與旗艦之間的距離(四捨五入保留小數點後兩位)。輸出的具體格式請看樣例。

Sample Input

20 022 2-1 -30 021 22 2

Sample Output

45.00 DEG / 2.83 KM
71.57 DEG / 3.16 KM
63.43 DEG / 2.24 KM
45.00 DEG / 2.83 KM


#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;
int main()
{
	int n;int m;
	double deg,dd;
	cin>>n;
	while(n--)
	{
		double a,b;
		double aa[110],bb[110],km;
		cin>>a>>b;	
		cin>>m;
		int x=1;
		for(int i=0;i<m;i++)
			cin>>aa[i]>>bb[i];	
		for(int i=0;i<m;i++)
		{
			x=1;
			dd=(bb[i]-b)/(aa[i]-a);
			deg=atan(dd)*57.29578;
			if(deg<=0)
				deg=0-deg;
			if((aa[i]-a)==0.0&&(bb[i]-b)==0.0)
				cout<<"0.00 DEG / ";
			else
			printf("%.2lf DEG / ",deg);
			km=sqrt((aa[i]-a)*(aa[i]-a)+(bb[i]-b)*(bb[i]-b));
			printf("%.2lf KM\n",km);
		}
	}
}


發佈了65 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章