matlab判斷線段和矩形是否相交
線段和矩形相交,換句話說就是線段上存在至少一個點落在矩陣
為了方便推導,把參數約定下:設線段兩個點坐標為r1、r2;矩陣中心坐標為r0,兩個軸的單位矢量為e1、e2,對應的邊長為2a、2b 。
線段上任意點可以表示為:r=λr1 (1-λ)r2 , 0≤λ≤1
點落在矩陣內部可以表示為:|(r-r0)?e1|≤a,|(r-r0)?e2|≤b
故線段和矩形相交轉化為以下數學問題:存在0≤λ≤1,滿足|[λr1 (1-λ)r2-r0]?e1|≤a,|[λr1 (1-λ)r2-r0]?e2|≤b 。
寫程序則需要具體的判斷步驟
判斷端點是否在矩陣內部,若|(r1-r0)?e1|≤a且|(r1-r0)?e2|≤b,則r1在矩陣內部;類似的判斷r2 。若兩者中有一個落在矩陣內部,則線段必定在矩陣內部;若兩者都在矩陣外部,做下面判斷
代入關系,知存在0≤λ≤1,滿足|λ(r1-r2)?e1 (r2-r0)?e1|≤a,|λ(r1-r2)?e2 (r2-r0)?e2|≤b 。
若(r1-r2)?e1==0,或(r1-r2)?e2==0,有前面的判斷,線段必然落在矩陣外部
否則,|λ (r2-r0)?e1/(r1-r2)?e1|≤a/|(r1-r2)?e1|,|λ (r2-r0)?e2/(r1-r2)?e2|≤b/|(r1-r2)?e2|,求得
【matlab判斷線段和矩形是否相交,長方形中面和面相交的線段叫什么】-a/|(r1-r2)?e1|-(r2-r0)?e1/(r1-r2)?e1≤λ≤a/|(r1-r2)?e1|-(r2-r0)?e1/(r1-r2)?e1,-b/|(r1-r2)?e2|-(r2-r0)?e2/(r1-r2)?e2≤λ≤b/|(r1-r2)?e2|-(r2-r0)?e2/(r1-r2)?e2,取λ1=max(-a/|(r1-r2)?e1|-(r2-r0)?e1/(r1-r2)?e1,-b/|(r1-r2)?e2|-(r2-r0)?e2/(r1-r2)?e2),λ2=min(a/|(r1-r2)?e1|-(r2-r0)?e1/(r1-r2)?e1,b/|(r1-r2)?e2|-(r2-r0)?e2/(r1-r2)?e2),若滿足λ1≤λ2
- 男命桃花判斷標準!
- “matlab求線性規劃最大值“matlab如何求兩面相交線
- 平行線分線段成比例定理八字_平行線分線段成比例定理證明?9?3
- 命理:八字常規的旺衰判斷方法!
- 八字算命2014年七月二十四日零晨4點出生_八字身旺身弱的判斷
- 如何判斷一個男生是不是老司機?只需要看這七條
- 如何從八字判斷命主幾次婚姻 ?
- 痰多是身體發出的什么信號?了解這五點,自己都會判斷!
- 關于安培力左手定則判斷_判斷安培力是用左手定則還是右手定則
- 怎樣從八字判斷人的性格? 性格多疑的八字
