您可以尝试使用交叉产品-http://en.wikipedia.org/wiki/Cross_product。
v1 = (x2-x1, y2-y1) # Vector 1v2 = (x2-xA, y2-yA) # Vector 1xp = v1[0]*v2[1] - v1[1]*v2[0] # Cross productif xp > 0: print 'on one side'elif xp < 0: print 'on the other'else: print 'on the same line!'
您需要校准每一面。如果希望它在“下方”或“上方”,则需要确保线上的点是水平排序的。
我还没有测试。
编辑 我最初输入点积公式。:o
编辑2 D’oh,我将坐标放入一个集合中,而不是一个元组。使用
namedtuple('point', 'xy')如果你正在运行的Python的一个合理的现代版的载体是好的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)