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)
由两点确定的一条线段 逆时针旋转60度获得的等边三角形的另一点的坐标;
有公式
推广结论:对于任意两个不同点A和B,A绕B旋转θ角度后的坐标为:
(Δx*cosθ- Δy * sinθ+ xB, Δy*cosθ + Δx * sinθ+ yB )
带入可得:
#include <iostreiaam>
#include<stdio.h>#include<math.h>
using namespace std;
int main()
{
int n;
double x,y,x1,y1,x2,y2,y3,x3;
scanf("%d",&n);
while(n--)
{
scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);
x=x2-x1;
y=y2-y1;
x3=x/2-y*sqrt(3)/2+x1;
y3=y/2+x*sqrt(3)/2+y1;
printf("(%.2lf,%.2lf)\n",x3,y3);
}
return 0;
}