Python是一種簡單易學的編程語言,非常適合初學者進行編程學習。在Python中,可以方便地實現求線段交點的功能。
def intersection(p1, p2, q1, q2):
x1, y1 = p1
x2, y2 = p2
x3, y3 = q1
x4, y4 = q2
den = float((y4 - y3)*(x2 - x1) - (x4 - x3)*(y2 - y1))
if den == 0:
return None
ua = float((x4 - x3)*(y1 - y3) - (y4 - y3)*(x1 - x3)) / den
ub = float((x2 - x1)*(y1 - y3) - (y2 - y1)*(x1 - x3)) / den
if not(0<= ua<= 1 and 0<= ub<= 1):
return None
x = x1 + ua*(x2 - x1)
y = y1 + ua*(y2 - y1)
return (x, y)
這是一個求解兩條線段交點的函數,其中p1、p2、q1、q2分別表示四個坐標點。我們首先將坐標點分別取出,并計算den的值。如果den等于0,則表示兩條線段平行,無交點。否則,分別計算ua和ub,如果兩個值均不在0到1的范圍內,則表示兩條線段未相交,返回None。如果均在0到1的范圍內,則計算交點的坐標,并返回。
上一篇vue寫本地數據
下一篇python 求第k大數