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

如何获取矩形两对角顶点间的所有坐标?附Python实现需求

获取矩形内所有整数坐标点的方法与Python实现

思路解析

你的初始思路完全正确!要生成矩形内的所有整数坐标点,核心就是两步:

  1. 明确x轴的取值范围:取两个顶点x坐标的最小值到最大值(包含两端),比如示例里的0、1、2。
  2. 明确y轴的取值范围:同理取两个顶点y坐标的最小值到最大值(包含两端),也就是示例里的0、1、2、3。
  3. 最后把每个x值和每个y值做笛卡尔积组合,就能得到所有符合要求的坐标点了。

具体实现(Python 3)

这里提供几种不同风格的实现,你可以按需选择:

方法1:嵌套循环(最直观易懂)

用两层循环逐个遍历x和y的取值,手动收集坐标点:

def get_rectangle_points(top_left, bottom_right):
    x1, y1 = top_left
    x2, y2 = bottom_right
    # 确定x、y的范围,注意range是左闭右开,所以最大值要+1才能包含进去
    x_start, x_end = min(x1, x2), max(x1, x2)
    y_start, y_end = min(y1, y2), max(y1, y2)
    
    points = []
    # 先遍历y再遍历x,和示例输出的顺序一致
    for y in range(y_start, y_end + 1):
        for x in range(x_start, x_end + 1):
            points.append((x, y))
    return points

# 测试示例
input_points = [(0, 0), (2, 3)]
print(get_rectangle_points(*input_points))
# 输出:[(0, 0), (1, 0), (2, 0), (0, 1), (1, 1), (2, 1), (0, 2), (1, 2), (2, 2), (0, 3), (1, 3), (2, 3)]

方法2:用itertools.product简化代码

Python标准库的itertools.product可以直接生成笛卡尔积,代码更简洁:

from itertools import product

def get_rectangle_points(top_left, bottom_right):
    x1, y1 = top_left
    x2, y2 = bottom_right
    x_min, x_max = sorted([x1, x2])
    y_min, y_max = sorted([y1, y2])
    
    # 直接生成所有x和y的组合,转成列表返回
    return list(product(range(x_min, x_max + 1), range(y_min, y_max + 1)))

# 测试示例
input_points = [(0, 0), (2, 3)]
print(get_rectangle_points(*input_points))
# 输出和上面完全一致

方法3:列表推导式(一行搞定)

如果喜欢紧凑的写法,用列表推导式也能实现:

def get_rectangle_points(top_left, bottom_right):
    x1, y1 = top_left
    x2, y2 = bottom_right
    x_min, x_max = min(x1, x2), max(x1, x2)
    y_min, y_max = min(y1, y2), max(y1, y2)
    
    return [(x, y) for y in range(y_min, y_max + 1) for x in range(x_min, x_max + 1)]

# 测试示例
input_points = [(0, 0), (2, 3)]
print(get_rectangle_points(*input_points))

补充说明

  • 上面的代码都兼容任意对角顶点的输入,哪怕你把右下角和左上角反过来传,也能得到正确结果。
  • 如果需要非整数坐标点(比如每隔0.1取一个点),可以把range换成numpy.arange或者自定义步长的循环,根据你的精度需求调整即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:17:42