python - Python中两条线段的交点
问题描述
不同的文章讨论了 Python 中两条线段的交集,例如
但是,没有人使它完美,因为他们没有涵盖一个特殊情况。给定以下两个线段:
a = [(0, 2), (2, 4)]
b = [(-2, 0), (0, 2)]
这两条线段具有相同的斜率。事实上,它们相交于(0, 2)
。我们怎样才能得到这样的交点呢?
我的问题的第二部分,如果两条线段重叠(部分/完全)怎么办?那是,
a = [(0, 2), (2, 4)]
b = [(-2, 0), (1, 3)]
解决方案
A1 == A2
在您的最后一个参考中,如果由于线是平行的,第一个答案将返回 False 。你提出了一个合法的边缘情况,所以如果线平行,你需要做的就是检查它们是否都在同一条线上。这是通过检查 if b1 == b2
。仅当此条件为False
时,才返回 False,因为这些线段是平行的,但不位于同一超平面上。否则,按照答案指定继续,这是通过检查两个段是否具有共同点。
推荐阅读
- wordpress - 如何替换现有 Wordpress 站点中的域名?
- java - 在 JavaFX 中自动调整窗口大小
- armeria - 在 Armeria 上使用第三方 http 客户端
- sapui5 - 在桌面 sapUiSizeCozy 上的 SAPUI5 1.71.4 中忽略内容密度
- html -
如何使用 css 实现与内部目标元素相同的效果? - reactjs - ReactJS 组件在状态更改时呈现两次
- c# - ListBox 绘制大小不会随着更改为更大的字体大小而改变
- http - KDB:.Q.hp/.Q.hg 和内置 HTTP 请求之间的区别。并且要么坚持/保持活力吗?
- firebase - Firestore 文档快照如何工作?
- java - Json 输出排除字段名称,但包括其类字段