作者PaulErdos (My brain is open)
看板Math
标题Re: [运算] 怎算出两条线有没有交叉?
时间Fri Feb 11 12:10:45 2011
※ 引述《VVVVii (aa)》之铭言:
: ※ [本文转录自 MATLAB 看板 #1DL9pjiq ]
: 作者: VVVVii (aa) 看板: MATLAB
: 标题: [运算] 怎算出两条线有没有交叉?
: 时间: Fri Feb 11 10:20:27 2011
: 我有点a,b,c,d座标都已知
: a=(ax,ay),
: b=(bx,by),
: c=(cx,cy),
: d=(dx,dy),
: 这四点都在第一象限,不考虑座标等於零的情况
: 我要怎麽知道a,b连线(称作M),与c,d连线(称作N)有没有交叉?
: 画出来虽然一看就知道,但是我必须自动处理大量类似问题。
: 恳请赐教
你的意思大概是指"线段"有没有交叉
对於一条直线 如果我们把两个线外的点代入直线方程式
代入的结果一正一负 则两个点在直线的异侧
_ _
只要C D 在AB的异侧 且 A B 在CD的异侧 这样就行了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.71.37.62
1F:→ VVVVii :对,是线段 02/11 14:55
2F:→ VVVVii :挖靠你这样好聪明喔!不用解两个方程还要算range 02/11 14:57
3F:推 FF16 :好方法....我想了两分钟才搞懂.... 02/11 16:20
4F:推 ostrichw :还是得算到两条直线方程式..这样子code好像也没较少 02/11 19:08
5F:→ ostrichw :不过这很好的idea 02/11 19:09
6F:推 robertshih :这个方法也是只能求直线 对线段无效 而且求出方程式 02/12 14:08
^^^^^^^^^^
你再想一下
7F:→ robertshih :已经有点杀鸡用牛刀了 02/12 14:08
8F:推 VVVVii :有没有不用求方程式直接用投影法判断的方法? 02/12 16:32
※ 编辑: PaulErdos 来自: 219.71.38.45 (02/12 21:39)
9F:推 VVVVii :我觉得对线段有效阿 02/13 06:34
10F:→ PaulErdos :我不清楚code写起来如何,如果利用斜率:AB在AC AD间 02/13 15:55
11F:→ PaulErdos :且CD斜率在 CA CB 之间 这样写不知会不会比较简便 02/13 15:56
12F:→ PaulErdos :这也是类似同侧异侧的概念 没用到直线方程式 02/13 15:56