You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已知矩形四个顶点坐标,如何正确计算该矩形的长度与宽度?

矩形长宽计算方案

矩形的几何特性可以直接解决这个判定问题:从任意顶点出发到其余三个顶点的距离中,最长的那个必然是对角线,剩下两个较小值就是矩形的长和宽。

具体操作步骤

  • 任选一个顶点作为基准点,分别计算它到剩余三个顶点的欧氏距离,得到三个距离值
  • 对三个距离值做排序,最大值即为对角线长度,剩下的两个值就是矩形的宽和长,你可以按需将较大的边定义为长、较小的定义为宽
  • 可选验证步骤:用勾股定理校验结果准确性,两个短边的平方和与长边(对角线)平方的差值如果在允许的浮点数误差范围内(通常取1e-6),就说明输入顶点确实符合矩形特征,结果有效。

通用代码示例(适用于任意旋转角度的矩形)

import math

def get_rect_length_width(points):
    # points格式:存储4个顶点坐标的列表,每个坐标为(x, y)格式的元组/列表
    base_x, base_y = points[0]
    dist_list = []
    for (x, y) in points[1:]:
        # 计算欧氏距离
        dist = math.hypot(x - base_x, y - base_y)
        dist_list.append(dist)
    # 排序后取前两个值作为宽、长
    dist_list.sort()
    width, length, diagonal = dist_list
    # 校验输入是否为矩形
    if abs(width ** 2 + length ** 2 - diagonal ** 2) > 1e-6:
        raise ValueError("输入的四个顶点无法构成矩形")
    return length, width

如果你的矩形是轴对齐(边和坐标轴平行)的场景,还可以用更简单的方法:提取所有顶点的x坐标的最大值减最小值得到一个边长,y坐标的最大值减最小值得到另一个边长,无需计算距离。

内容的提问来源于stack exchange,提问作者Ahmed Mohamed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 12:27:03