Bagaimana cara memeriksa dua garis berpotongan atau tidak?

Bagaimana cara memeriksa (dalam MATLAB) apakah dua segmen garis berhingga, L1 (digambar antara titik (x1,y1) dan (x2,y2)) dan L2 (digambar antara titik (x3,y3) dan (x4,y4)), saling bersinggungan? Harap diperhatikan bahwa titik potong tidak diperlukan, Hanya jawaban boolean (ya atau tidak).


person erbal    schedule 13.01.2015    source sumber
comment
Bagaimana poin-poin tersebut direpresentasikan? Apakah diberikan sebagai x,y?   -  person David.Jones    schedule 13.01.2015
comment
@rayryeng: Pertanyaan di atas (sudah terjawab) adalah mencari titik potong (x,y) dua garis. Tapi pertanyaan saya adalah memeriksa apakah dua garis berpotongan atau tidak (jawaban boolean saja ya atau tidak). Saya mencoba yang terbaik pada S.O., tetapi tidak menemukan duplikatnya? Harap hapus tag duplikat, jika Anda setuju.   -  person erbal    schedule 14.01.2015
comment
@DavidJones: Baru saja mengedit pertanyaannya.   -  person erbal    schedule 14.01.2015
comment
@ user11659 - Saya setuju juga. Saya salah menafsirkan pertanyaan Anda. Telah dibuka kembali!   -  person rayryeng    schedule 15.01.2015
comment
@ user11659 - Periksa postingan ini: blogs.mathworks.com/loren/2011/08/29/intersecting-lines/   -  person rayryeng    schedule 15.01.2015
comment
@rayryeng: Ini bagus. Namun menemukan jawabannya di tempat lain.   -  person erbal    schedule 16.01.2015


Jawaban (1)


Saya menemukan jawaban (kedua terakhir) oleh Roger Stafford di MatlabCentral. Ini dia:

Dua ruas garis L1 dan L2 akan berpotongan jika dan hanya jika det([1,1,1;x1,x2,x3;y1,y2,y3])*det([1,1,1;x1,x2,x4 ;y1,y2,y4]) ‹= 0 dan det([1,1,1;x1,x3,x4;y1,y3,y4])*det([1,1,1;x2,x3,x4; y2,y3,y4]) ‹= 0, pengkodean MATLAB adalah:

x=[x1 x2 x3 x4];
y=[y1 y2 y3 y4];
dt1=det([1,1,1;x(1),x(2),x(3);y(1),y(2),y(3)])*det([1,1,1;x(1),x(2),x(4);y(1),y(2),y(4)]);
dt2=det([1,1,1;x(1),x(3),x(4);y(1),y(3),y(4)])*det([1,1,1;x(2),x(3),x(4);y(2),y(3),y(4)]);

if(dt1<=0 & dt2<=0)
  intrsct=1         %If lines intesect
else
 intrsct=0
end
person erbal    schedule 16.01.2015