如何计算两条直线的交点?

90

我有两条相交的线段,并知道它们的端点。如何在Python中计算交点?

# Given these endpoints
#line 1
A = [X, Y]
B = [X, Y]

#line 2
C = [X, Y]
D = [X, Y]

# Compute this:
point_of_intersection = [X, Y]

9
这些是线段还是直线? - user2357112
4
这个问题主要归结为“算数题”。你可以使用代数运算来找到交点坐标的表达式,然后将该表达式插入到你的程序中。不过首先要记得检查是否存在平行线。 - user2357112
在提问之前请先搜索stackoverflow:答案 - Cao Manh Dat
4
“我知道如何在纸上做这个。”那么你的问题确切是什么?这只是纯数学,你需要在这里应用它。Python 是你的计算器。你尝试了什么? - poke
可能是重复的问题:如何检查两条线段是否相交? - Jerry Coffin
11个回答

0
应该提到的是Euclid库。
请参见:https://pypi.org/project/euclid/(2023年10月)
Euclid库正如其名称所示,提供了定义二维和三维中的点、线、线段、圆和球体的类,以及一组基本操作和方法来处理它们。我发现该软件包的代码非常易读,这使我能够轻松地添加自己的方法。
以下代码找到了两条线的交点:
>>> from euclid import Line2, Point2
>>> l1  = Line2(Point2(1.0, 2.0), Point2(3.0, 4.0))
>>> l2  = Line2(Point2(3.0, 4.0), Point2(-5.0, 6.0))
>>> l1.intersect(l2)
Point2(3.00, 4.00)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接