画像の2つのオブジェクトがどこを指しているのかを計算しようとしています。私はオブジェクトを直線に変換できるので、これを実行するために交差線を使用すると考えました。しかし、私が必要としないものである無限の線の間の交差を見つけるためのコードを見つけることがあるようです。2つのオブジェクト間の線が交差する
私はこのコードをa matlab blogから見つけました。交差する無限線を見つける方法を詳しく説明しています。
A = [lineA(1,:) - lineA(2,:); lineB(2,:) - lineB(1,:)]';
if rank(A) < 2
disp('Parallel')
B = [lineA(1,:) - lineA(2,:); lineA(1,:) - lineB(1,:)]';
if rank(B) < 2
disp('Collinear')
if all((sort(lineA(:,1),'descend')-sort(lineB(:,1))) ...
.*[-1;1] <= sqrt(eps))
tf = true;
else
tf = false;
end
else
tf = false;
end
else
pq = linsolve(A,(lineB(2,:) - lineA(2,:))');
tf = all(pq>=-sqrt(eps)) & all(pq<=1+sqrt(eps));
end
また、私は必要かもしれないものに近い見えますline + circle intersectionsについての古い質問に位置しています。
しかし問題は、有限線と交差する1行をチェックしようとしていることです。写真は、私が何を描こうとしているのかを表しています。青い線は長さが限られていますが、赤い線は無限大で、交差するかどうかを判断しようとしています。
を使用して
d
を解くことができます。線分/線分交点アルゴリズムを探している場合は、[here](https://stackoverflow.com/questions/563198/how-do-you-detect-where-two-line-セグメント交差)と[here](http://www.geeksforgeeks.org/check-if-two-given-line-segments-intersect/) – jodag申し訳ありません。はい、私は2つの線分の間の交差点を探していますが、1つは線分として残り、もう1つは無限になります。 –