如何从多边形随机坐标数组中确定属于右上角的(x,y)坐标点?
多边形右上角顶点筛选方法
完全可以实现,按照以下步骤操作即可:
- 第一步:将扁平的坐标数组转换为(x,y)坐标对列表
你给出的输入是扁平化存储的一维数组,每相邻两个元素对应一个顶点的x、y坐标,通用转换逻辑示例(Python写法):arr = [x1,y1,x2,y2,x3,y3,x4,y4] coords = [(arr[i], arr[i+1]) for i in range(0, len(arr), 2)] - 第二步:确认当前使用的坐标系约定
不同坐标系下的判定规则有差异,需提前对齐:- 常规数学/GIS坐标系(x轴向右为正、y轴向上为正):默认使用该约定
- 屏幕/图像坐标系(x轴向右为正、y轴向下为正):对应调整y值的判定方向
- 第三步:按规则筛选右上角顶点
通用判定规则为x坐标优先取最大值,若存在多个x相等的最大值点,再从中取y值符合坐标系要求的极值点:- 常规坐标系下,直接取
max(coords, key=lambda p: (p[0], p[1]))即可得到结果 - 屏幕坐标系下,取
max(coords, key=lambda p: (p[0], -p[1]))即可
示例:输入数组
arr = [3,5,7,2,7,8,2,9],转换后坐标对为[(3,5), (7,2), (7,8), (2,9)],按常规坐标系筛选得到的右上角顶点为(7,8)。 - 常规坐标系下,直接取
- 特殊场景适配
如果你需要找的是整体最靠右上的顶点(而非x最大优先的顶点),可以改用曼哈顿距离判定,取x + y值最大的顶点即可,规则更贴合日常对「右上角」的直观感知。
内容的提问来源于stack exchange,提问作者Rahul
相关产品推荐
相关产品推荐

