私は比較的簡単な質問がありますが、私は答えは知っていますが、PythonとNumpyを使って正しい実装を見つけることができないようです。アイデアは、私は2つの線を持っており、私は仮想交点を見つける必要がある(私はhttps://www.youtube.com/watch?v=kCyoaidiXAU&t=313sからの例を使用した)。numpyでPythonのラインラインの交差点
どちらの線も、位置ベクトル(線が通過する点)としてt0を変数とし、Vを方向ベクトルとして、r = r0 + t * Vの形式をとります。方向ベクトルVは、単に線の両方の点を通るベクトルを見つけることによって見つけることができる。私ができる、
L1 = R0(既知点)+ T(未知変数)* V(方向ベクトル)次に
: - Vは= A、それは、ラインを処方することができるものとB.
です簡単に手動で見つけることができますが、私はPythonにどのように伝えるべきかを知りません。numpy.linalg.solveを試しましたが、これは行列を与えますが、単一の値が必要です。例えば
:
# Line A and Line B that intersect somewhere
A = LineString([(4., 0.), (4., -3.)])
B = LineString([(6., 2.), (10., 2.)])
# direction vectors for line A and B
v1 = (A[0].x - A[1].x, A[0].y, A[1].y) # --> [0,3]
v2 = (B[0].x - B[1].x, B[0].y, B[1].y) # --> [-4,0]
L1 = A[1] + x * v1
L2 = B[1] + y * v2
さて、私はX用のL1を解くことによって、手動でこれを解決するだろう:
L1 = [4, 0] + x * [0, 3] = [4, 3x]
L2 = [6, 2] + y * [-4, 0] = [6-4y, 2]
# finding intersection point by solving L1 = L2
4 = 6-4y & 3x = 2
y = 1/2 & x = 2/3
しかし、私はxについて解く方法numpyの/のpythonを伝えるためにどのよう見当がつかないとy。
正しい方向のヘルプやガイドがあれば幸いです。
関連:https://stackoverflow.com/q/41797953/67579 –
あなたは「numpy」と言っていますが、ここでは何も表示されません。あなたは気の利いた解決策を望んでいますか?それとも必要ないのですか? –
可能であれば、うまくいきませんが、Numpy.linalg.solveを試したので、numpyはそのようなことをする機能を持っていると思っていました。 – Matthie456