1932: 我是一道数学题
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 13 Solved: 9
[ 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.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)
【分析】
中文题...没什么好解释的了...就画几个图硬算就行了...
只要知道一个sqrt(3)/2就行了....
【代码】
#include <iostream>
#include <map>
#include <cstring>
#include <cmath>
#include <cstdio>
using namespace std;
int main()
{
int pp;scanf("%d",&pp);
while (pp--)
{
double a,b,c,d;
double pi=sqrt(3.0)/2.0;
scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
double x=(a+c)/2.0-(d-b)*pi;
double y=(b+d)/2.0+(c-a)*pi;
printf("(%.2f,%.2f)\n",x,y);
}
return 0;
}