思路:
就是坐标系上找4个点,然后判断这些点和点之间能组合出多少长度的线,然后根据勾股定理看看是否能组成直角
// 判断坐标系上的任意4个点是否可以组成一个矩形 // 1,2个点一组,穷举所有组合方式 // 2,计算每个组合方式2点之间的距离 // 3,对产生的所有距离长度去重,计算数量,数量为3是长方形(假设),数量是2是正方形(假设) // 4,判断剩余的距离能否组成一个直角,利用勾股定理判断,如果不能组成直角三角形,可能是菱形、梯形、不规则四边形
error_reporting(0);
// 判断坐标系上的任意4个点是否可以组成一个矩形
// 1,2个点一组,穷举所有组合方式
// 2,计算每个组合方式2点之间的距离
// 3,对产生的所有距离长度去重,计算数量,数量为3是长方形(假设),数量是2是正方形(假设)
// 4,判断剩余的距离能否组成一个直角,利用勾股定理判断,如果不能组成直角三角形,可能是菱形、梯形、不规则四边形
// 是否是矩形
function IsRectangle($point_1 = [0, 0], $point_2 = [0, 0], $point_3 = [0, 0], $point_4 = [0, 0])
{
$point_list = [$point_1, $point_2, $point_3, $point_4];
// 判断是否有重复的点
if (count(array_unique($point_list, SORT_REGULAR)) < 4) {
echo 2;
return false;
}