gpt4 book ai didi

python - 如何计算两条线的交点?

转载 作者:IT老高 更新时间:2023-10-28 21:38:30 41 4
gpt4 key购买 nike

我有两条相交的线。我知道两条线的端点。如何在 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]

最佳答案

与其他建议不同,这很短并且不使用像 numpy 这样的外部库。 (并不是说使用其他库不好......不需要这样做很好,尤其是对于这样一个简单的问题。)

def line_intersection(line1, line2):
xdiff = (line1[0][0] - line1[1][0], line2[0][0] - line2[1][0])
ydiff = (line1[0][1] - line1[1][1], line2[0][1] - line2[1][1])

def det(a, b):
return a[0] * b[1] - a[1] * b[0]

div = det(xdiff, ydiff)
if div == 0:
raise Exception('lines do not intersect')

d = (det(*line1), det(*line2))
x = det(d, xdiff) / div
y = det(d, ydiff) / div
return x, y

print line_intersection((A, B), (C, D))

仅供引用,我会使用元组而不是列表来表示您的观点。例如

A = (X, Y)

编辑:最初有一个错字。那是fixed感谢@zidik,2014 年 9 月。

这只是下面公式的Python音译,其中的行是(a1, a2)和(b1, b2) 和交叉点是 p。 (如果分母为零,则线条没有唯一的交点。)

关于python - 如何计算两条线的交点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20677795/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com