1、本题用到一公式,向量AB=(x,y),逆时针旋转α角,所得新向量AC=(xcosα-ysinα,xsinα+ycosα)。
2、注意Impossible后面要加句号。
3、注意判断两浮点数是否相等,应用它们的“绝对值”与1e-9比较,如果忘记了绝对值,是会WA的。(我就是这样)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(void)
{
double x1,y1,x2,y2,x0,y0,x3,y3;
while(scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2)==4)
{
if(fabs(x1-x2)<1e-9&&fabs(y1-y2)<1e-9)
{printf("Impossible.\n");continue;}
x0=x2-x1;
y0=y2-y1;
x3=-y0/2;
y3=x0/2;
x3+=(x1+x2)/2;
y3+=(y1+y2)/2;
printf("%.10lf %.10lf %.10lf %.10lf\n",x3,y3,(x1+x2)-x3,(y1+y2)-y3);
}
return 0;
}