Description
几天前,一只野兽抓住了一位美丽的公主,公主被关进监狱。 ,一个想要嫁给公主的王子立即出发去拯救公主。 然而,野兽设置了一个迷宫。 只有当王子找出迷宫的出口才能救他的公主。
现在,这里出现了问题。 迷宫是一个维度平面。 野兽很聪明,他很好地隐藏了公主。 他在迷宫中标出了一个等边三角形的两个坐标。 两个标记的坐标是A(x1,y1)和B(x2,y2)。 第三坐标C(x3,y3)是迷宫的出口。 如果王子能找出出口,他可以拯救公主。 王子进入迷宫之后,他发现A(x1,y1)和B(x2,y2),但他不知道C(x3,y3)在哪里。 王子需要你的帮助。 你可以计算C(x3,y3)并告诉他吗?
Input
第一行是测试用例数的整数T(1 <= T <= 100)。 T测试案例如下。 每个测试用例包含由四个浮点数x1,y1,x2,y2(| x1 |,| y1 |,| x2 |,| y2 |)表示的两个坐标A(x1,y1)和B(x2,y2) <= 1000.0)。
请注意,A(x1,y1)和B(x2,y2)和C(x3,y3)在等边三角形的逆时针方向。 坐标A(x1,y1)和B(x2,y2)通过逆时针给出。
Output
对于每个测试用例,输出C(x3,y3)的坐标,结果应在一行中保留2位小数。
Sample Input
4
-100.00 0.00 0.00 0.00
0.00 0.00 0.00 100.00
0.00 0.00 100.00 100.00
1.00 0.00 1.866 0.50
Sample Output
(-50.00,86.60)
(-86.60,50.00)
(-36.60,136.60)
(1.00,1.00)
代码
#include<bits/stdc++.h>
using namespace std;
#define Pi sqrt(3.0)/2.0
int main()
{
double x1,y1,x2,y2;
int T;
scanf("%d",&T);
while(T--)
{
scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);
double x3=(x1+x2)/2.0-(y2-y1)*Pi;
double y3=(y1+y2)/2.0+(x2-x1)*Pi;
printf("(%.2f,%.2f)\n",x3,y3);
}
return 0;
}