OK、ここに問題があります。一連の csv ファイルから読み出された複数の線分を比較して、2 つの線の交点を計算しようとしています。次のように、各線分の x、y 座標ペアをタプル内のタプルのリストに既に取得しています。
continuousLine = [((x1,y1),(x2,y2)), ...]
crossingLines = [((x1,y1),(x2,y2)), ...]
連続線に沿って交差する線を反復して、連続線に沿って各交差線が交差する場所を見つける方法を見つけようとしています。
基本的に私が欲しい(以下にリストされている疑似コード):
for segment in continuousLine:
if segment in crossingLines intersect == True:
return intersection
else:
move on to next crossing line segment and repeat test
私はコーディングに慣れていないため、他の人を助けることができないため、これについて助けを求めるのは嫌いですが、誰かが私と一緒にこれを解決できることを願っています.
イテレータを見つけたら、交点を計算するために機能すると思われる方法があります。
line1 = ()
line2 = ()
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]) #Typo was here
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))