判斷兩條線段的相對位置

2021-08-31 20:27:13 字數 639 閱讀 1407

判斷兩條線段的相對位置,用int s1表示第一條線段,int s2表示第二條線段,即兩線段兩端點的座標為:

(s1[0],s1[1]),(s1[2],s1[3])和(s2[0],s2[1]),(s2[2],s2[3])。如果兩線段沒有交點則返回"no",只有乙個交點則返回"point",多個交點則返回"segment"。

public class testline 

}} return (flag < 0) ? -1 : ((flag > 0) ? 1 : 0);

} public static string teststate(int s1, int s2)

if ((state[0] * state[1] > 0) || (state[2] * state[3] > 0)) else if (zerocount > 1)

return "segment";

} else

return "point";

} public static void main(string args) ;

int s2 = new int ;

system.out.println(teststate(s1, s2));

}}

輸出結果:point

判斷兩條線段是否相交

如上圖,判斷線段ab和線段cd相交。分析 如果線段ab和線段cd相交,只能是圖中的兩種相交情況。可以用向量叉乘來判斷。如果 向量ab叉乘向量ac 向量ab叉乘向量ad 0 並且 向量cd叉乘向量ca 向量cd叉乘向量cb 0,那麼說明線段ab與線段cd相交。設a x1,y1 b x2,y2 c x3...

判斷兩條線段是否相交

題目 給定兩條線段,判斷這兩條線段是否相交,線段ab的表示形式是a x1,y1 b x2,y2 線段cd的表示形式為c x3,y3 d x4,y4 那麼我們如何判斷線段ab與線段cd是否相交。解析 在介紹如何解決線段相交問題之前,我們先介紹向量的叉積。如下圖所示 下面的圖 1 表示p1向量在p2向量...

判斷兩條線段是否相交

1.必備知識 向量積 矢積 與數量積 標積 的區別 名稱標積 內積 數量積 點積 矢積 外積 向量積 叉積 表示式 a,b和c粗體字,表示向量 a b a b cos a b c,其中 c a b sin c的方向遵守右手定則 幾何意義 向量a在向量b方向上的投影與向量b的模的乘積 c是垂直a b所...