Prolog中分离列表内坐标轴以实现点位置判断的方法
如何从坐标点中分离X/Y轴值并进行比较
嗨,这事儿其实挺简单的,咱们一步步来拆解:
首先,你列表里的每个元素都是元组,比如(4,4),其中第一个元素对应X轴的数值,第二个对应Y轴的数值——分离它们根本不需要复杂操作,直接通过下标访问就行:
- 提取X轴值:
point[0](比如(4,4)[0]就能得到4) - 提取Y轴值:
point[1](比如(4,4)[1]也能得到4)
结合你给出的例子,咱们来实现对应的筛选逻辑:你要找出X值小于3的点(结果里的(2,4)和(1,4)都满足这个条件),可以写一个函数来处理:
def get_list_below_line(point_list, line_value, result_list): # 遍历每一个坐标点 for point in point_list: # 分离X轴数值 x_coord = point[0] # 判断是否在目标线的"下方"(这里对应X值小于line_value,要是判断Y轴上下就改point[1]) if x_coord < line_value: result_list.append(point) return result_list # 测试你的示例输入 input_points = [(4,4), (3,4), (2,4), (1,4)] ResultList = [] get_list_below_line(input_points, 3, ResultList) print(ResultList) # 输出:[(2, 4), (1, 4)]
如果你的需求是判断Y轴的上下(比如找Y值小于某个数值的点),只需要把代码里的x_coord = point[0]改成y_coord = point[1],然后把判断条件换成y_coord < line_value就可以了。
本质上就是利用元组的下标访问特性,直接提取对应轴的数值,再做算术比较就行,完全不需要额外工具或者复杂转换~
内容的提问来源于stack exchange,提问作者spacing
相关产品推荐
相关产品推荐

