1932: 我是一道数学题
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 32 Solved: 22
[ Submit][ Status][ Web Board]
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.000.00 0.00 0.00 100.000.00 0.00 100.00 100.001.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)
HINT
Source
画图硬算就可以得到结果。
代码:
#include<cmath>
#include<cstdio>
using namespace std;
int main(){
int t;
scanf("%d",&t);
while(t--){
double a,b,c,d;
double pi=sqrt(3.0)/2.0;
scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
printf("(%.2f,%.2f)\n",(a+c)/2.0-(d-b)*pi,(b+d)/2.0+(c-a)*pi);
}
return 0;
}