方法一:
判断方法:三个条件同时满足(1:四条边相等,2:边不为0,3:有一个直角)
https://blog.csdn.net/qq_29567701/article/details/79676736
方法二:
思路:
计算所有点之间的distance。
如果能构成正方形,结果必定只有两个。
如果两个结果的比值为cos(PI/4),返回Yes
https://blog.csdn.net/MadBam_boo/article/details/79801997
方法三:
思路:
两个相邻边相等,两交叉边相等.
#include <iostream>
#include <cmath>
#include <algorithm>
using
namespace
std;
int
main()
{
int
n, x1, x2, x3, x4, y1, y2, y3, y4;
int
line[6];
cin>>n;
while
(n--)
{
cin>>x1>>x2>>x3>>x4;
cin>>y1>>y2>>y3>>y4;
line[0] =
pow
(x1-x2, 2) +
pow
(y1-y2, 2);
line[1] =
pow
(x2-x3, 2) +
pow
(y2-y3, 2);
line[2] =
pow
(x3-x4, 2) +
pow
(y3-y4, 2);
line[3] =
pow
(x4-x1, 2) +
pow
(y4-y1, 2);
line[4] =
pow
(x1-x3, 2) +
pow
(y1-y3, 2);
line[5] =
pow
(x2-x4, 2) +
pow
(y2-y4, 2);
sort(line, line+6);
if
(line[0] == line[1] && line[4] == line[5])
cout<<
"Yes"
<<endl;
else
cout<<
"No"
<<endl;
}
return
0;
}