正方形
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
给出四个点,判断这四个点能否构成一个正方形。
输入
输入的第一行包含一个整数T(T≤30)表示数据组数,每组数据只有一行,包括8个整数x1, y1, x2, y2,x3,y3,x4,y4(数据均在-1000,1000 之间)以逆时针顺序给出四个点的坐标。
输出
每组数据输出一行,如果是正方形,则输出: YES, 否则,输出:NO。
示例输入
2 0 0 1 0 1 1 0 1-1 0 0 -2 1 0 2 0
示例输出
YES NO
提示
//菱形特殊
#include <stdio.h>
int main()
{
int x1,y1,x2,y2,x3,y3,x4,y4;
int n,i;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d%d%d%d%d%d%d%d",&x1,&y1,&x2,&y2,&x3,&y3,&x4,&y4);
if(((x3-x1)*(x3-x1)+(y3-y1)*(y3-y1))==((x4-x2)*(x4-x2)+(y4-y2)*(y4-y2))&&((x3-x1)*(x4-x2)+(y3-y1)*(y4-y2))==0)//对角线长度相等且垂直(向量法)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}