判斷兩條線段是否相交

2021-08-25 07:49:42 字數 1080 閱讀 9153

判斷兩條線段是否相交,可以採用向量積的方式來判斷,如下圖所示:

現定義乙個函式初步判斷兩線段是否相交,如下**:

//////初步根據外圍框大致判斷兩條線段是否相交

//////

線段1的座標,長度為6

///線段2的座標,長度為6

///返回型別為bool,如果為true表示兩條線段可能相交,如果為false表示兩條線段不相交

private

bool judgeaboutcrossstatus(double line01coords, double line02coords)

return returnresult; }

函式judgeaboutcrossstatus

()如果返回值為true

則表示兩條線段可能相交,則需要採用向量積的方式來判斷是否相交,如果為false

則表示兩條線段不相交。現在定義乙個函式judge2linesrelation

()用於判斷兩條線段是否相交,其**如下:

//////判斷兩條線段是否相交

//////

線段1的座標,長度為6

///線段2的座標,長度為6

///返回型別為bool,如果為true表示兩條線段相交,如果為false表示兩條線段不相交

private

bool judge2linesrelation(double line01coords, double line02coords)

else

if (((babck > 0) && (babdk < 0)) || ((babck < 0) && (babdk > 0)))

else

} else

if ((babck == 0)||(babdk==0))//

點c或d在直線ab上

else

//點d在直線ab上

if (line01coords[0] == line01coords[3])//

是否垂直,是則比較y值

else

//比較x值

} }

return returnresult; }

判斷兩條線段是否相交

如上圖,判斷線段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所...