题意:给出两条边的起止点,注意顺序可不同,给出的4个点占据了3个点,即4个点有2个是一样的,根据信息求出第4个点的坐标。
题解:由于起止点不知,所以可考虑所有情况,找出一种情况的解决办法,再将其他情况通过交换点的坐标来得到一般情况的解。
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main()
{
double n[10],x,y;
int i;
while(cin >> n[1])
{
for(i=2; i<=8; i++)
{
cin >> n[i];
}
if(n[1]==n[5]&&n[2]==n[6])
{
x=n[3]+n[7]-n[1];
y=n[4]+n[8]-n[2];
printf("%.3lf %.3lf\n",x,y);
}
else if(n[1]==n[7]&&n[2]==n[8])
{
x=n[3]+n[5]-n[1];
y=n[4]+n[6]-n[2];
printf("%.3lf %.3lf\n",x,y);
}
else if(n[3]==n[7]&&n[4]==n[8])
{
x=n[1]+n[5]-n[3];
y=n[2]+n[6]-n[4];
printf("%.3lf %.3lf\n",x,y);
}
else if(n[3]==n[5]&&n[4]==n[6])
{
x=n[1]+n[7]-n[3];
y=n[2]+n[8]-n[4];
printf("%.3lf %.3lf\n",x,y);
}
}
return 0;
}