判断四个点是否构成矩形
程序员文章站
2022-03-02 10:54:24
...
- 找出角点的质心:cx =(x1 + x2 + x3 + x4)/ 4,cy =(y1 + y2 + y3 + y4)/ 4
- 测试从质心到所有四个角的距离的平方是否相等
//判断4个点是否构成矩形(OBB)
//找出角点的质心:cx =(x1 + x2 + x3 + x4)/ 4,cy =(y1 + y2 + y3 + y4)/ 4
//测试从质心到所有四个角的距离的平方是否相等
bool isRectangle(double x1, double y1,
double x2, double y2,
double x3, double y3,
double x4, double y4)
{
double cx=(x1+x2+x3+x4)/4;
double cy=(y1+y2+y3+y4)/4;
double dd1= Math.sqrt(cx-x1)+ Math.sqrt(cy-y1);
double dd2= Math.sqrt(cx-x2)+ Math.sqrt(cy-y2);
double dd3= Math.sqrt(cx-x3)+ Math.sqrt(cy-y3);
double dd4= Math.sqrt(cx-x4)+ Math.sqrt(cy-y4);
return Math.abs(dd1 - dd2) < 1E-6 &&
Math.abs(dd1 - dd3) < 1E-6 &&
Math.abs(dd1 - dd4) < 1E-6;
}