如何检查点是否在直线下方?

如何检查点是否在直线下方?,第1张

如何检查点是否在直线下方

您可以尝试使用交叉产品-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的一个合理的现代版的载体是好的。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5674461.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存