如何判斷一條線段和乙個矩形或者圓相交?

時間 2021-05-29 22:19:05

1樓:熱浴

看到以上回答都是基於平面二維座標系,這裡補充一下在三維座標系下相交問題(二維座標也適用)。

首先假設我們已知線段兩端點D,K座標,平面上三點A,P,Q(不在一條直線上)的座標。

那麼我們可以用向量方程來表示線段和平面。(以下字母表示的都是向量)

直線上點的座標可表示為 P(t)=D+(K-D)t,其中對於線段t屬於[0,1],簡化為P(t)=D+Et

其中E=K-D

平面上的點座標表示為 S(u,w)=A+(P-A)u+(Q-A)w,簡化為 S(u,w)=A+Bu+Cw

其中B=P-A,C=Q-A

如果A,P,Q是矩形平面的三個頂點,如下圖所示,那麼u屬於[0,1]並且w屬於[0,1]就表示S位於矩形區域內

那麼直線和平面的交點就可以通過聯立兩方程求解。為了

D+Et = A+Bu+Cw

兩邊同時點乘BXC....(這裡X指向量的叉乘)

(BXC).(D+Et)=(BXC).(A+B+Cw)=(BXC).A (BXC 平行平面)

所以求得

進一步可求得

求出t之後就可以通過直線方程求出交點的座標。

如果是判斷線段和平面區域相交問題,那就是判斷t在[0,1]之間且也在平面有效區域內(比如說平面三個點是上圖所示,那麼就是滿足u屬於[0,1]並且w屬於[0,1])。

2樓:Milo Yip

先說線段與圓形(circle)的相交檢測。(這裡的圓形是指圓形的曲線,不包含面積。包含面積的稱作圓盤,稍後更新。)

設線段為引數方程

設圓為隱含方程

聯合兩個方程,得 的二次方程:

求二次方程的判別式。

若 則無實根,即兩形狀不相交;

若 則求實根,若其中乙個實根滿足 則兩形狀相交。

此方法可擴充套件至三維球面(或更高維),也可用於光線(ray)和直線(line)。光線使用,而直線則只需判斷判別式。

----待續

3樓:陸彥帑

(1)與矩形:四個點分別代入到直線方程,如果結果符號相同則不相交;否則,直線與矩形相交。

(2)與圓:算下圓心到直線距離,大於圓半徑不相交;否則,相交。

還有比這更快的麼?

edit

上面不對。題主問的是線段。

4樓:Fewood

線段和矩形:先看線段兩個端點在不在矩形區域內,只要有乙個端點在矩形內的話相交;要是都不在,在判斷線段和矩形的兩條對角線是否相交,是就相交,不是就不相交。

線段和圓:計算下線段到圓心距離是否小於半徑。也就是找出經過圓心並且垂直於線段所在直線的垂線,圓心到垂線與線段相交點的距離就是圓心到線段的距離,這距離小於圓半徑:

相交。否則不相交。

5樓:

理解題設是在平面座標系下。先判斷端點,圓直接根據到圓心距離判斷,矩形需轉換座標系之後根據不等式判斷。之後再根據兩端的判斷結果是否一致判斷是否相交

會不會有一條線段蘊含了宇宙所有的秘密?

飯飯 切莫把數學模型中的連續當成了真實的存在,只是目前的量子力學理論裡,空間是不連續的,小到一定尺度,空間就會斷裂,物質只能存在於特定的空間位置,而無法連續位移。 不不不,有一些東西比無限還大。乙個無限小數的小數點後數字的個數是無限多,但是這個 無限多 比另一些無限多小,比如實數的個數,直角座標系內...

為什麼在一條線段中,中點到兩端點的平方和最小?

陸小越 從代數的角度這道題是很簡單的,由於涉及到平方問題,如果從幾何方向思考其實也可以。並且很顯然。幾何解釋 如圖所示,不妨設AB L,E為AB上一點,很顯然只有E在AB中間時,才有可能取得最小值,不然E在AB之外的話,是恆大於 的。要求 線段的平方是面積,故可如圖所示擴充套件成平面圖形,圖中四邊形...

在「一條線段中有無數個點」的這個角度下,所有線段是否都等長?

不咋帝 長度不是用點的數量去定義的。否則會出現這樣乙個悖論 你永遠到達不了某個點。因為要到達這個點,你必須先到達這個點前面那個點,而要到達這個點前面那個點,你又必須先到達更前面那個點.而點是無限的,所以你永遠到達不了任何乙個點。 星河欲轉 當年的題主在此.賬號登出啦無聊想感慨幾句 最近上初一了其實挺...