矩形相交算法 如何判斷空間坐標(biāo)系中兩個(gè)長方形是否相交?
如何判斷空間坐標(biāo)系中兩個(gè)長方形是否相交?如何判斷兩個(gè)矩形是否相交?1。一個(gè)矩形在另一個(gè)矩形中只有一個(gè)角點(diǎn);2。一個(gè)矩形a的一側(cè)只有兩個(gè)頂角在另一個(gè)矩形B中(在這種情況下,對(duì)于另一個(gè)矩形B,所有四個(gè)頂角
如何判斷空間坐標(biāo)系中兩個(gè)長方形是否相交?
如何判斷兩個(gè)矩形是否相交?
1。一個(gè)矩形在另一個(gè)矩形中只有一個(gè)角點(diǎn);
2。一個(gè)矩形a的一側(cè)只有兩個(gè)頂角在另一個(gè)矩形B中(在這種情況下,對(duì)于另一個(gè)矩形B,所有四個(gè)頂角都在矩形a之外,所以我們需要交換判斷)。
3. 一個(gè)矩形穿過另一個(gè)。在考慮了三種情況之后,這位朋友覺得為這些情況編寫代碼太復(fù)雜了,所以他去論壇提問。有時(shí),程序員不得不從不同的方向思考。如果兩個(gè)矩形相交,一定有直線相交。只有水平線和垂直線可以交叉。兩條水平線或兩條垂直線不能交叉。所以,問題是找出是否有相交的水平線和垂直線。另外,a線和B線的交集相當(dāng)于B線和a線的交集,因此,編寫一個(gè)函數(shù)并多次調(diào)用就足夠了。不管怎樣,計(jì)算機(jī)是專門做簡單而乏味的工作。函數(shù)如下:確定水平線和垂直線是否相交。函數(shù)的參數(shù)有:水平線左、水平線右、水平線y、垂直線向上、垂直線向下、垂直線X。布爾交叉線(左、右、y、上、下、X){//判斷水平線和垂直線是否交叉//水平線有三個(gè)參數(shù):左、右、y、上、下、X,right and Y//垂直線有三個(gè)參數(shù):top、bottom和X return(top<;Y)&&(bottom> Y)&&(left<;X)&&(right> X)這里有一個(gè)函數(shù)來判斷兩個(gè)矩形是否相交。只需再調(diào)用幾個(gè)相同的函數(shù)。Bool crossrect(crit&;R1,crit&;R2){//判斷兩個(gè)矩形是否相交,//從一個(gè)矩形中取一條水平線,判斷它是否與另一個(gè)矩形中的垂直線相交
判斷它是否相交很麻煩,所以我使用判斷不相交的情況。其他案件也相互交叉。當(dāng)一個(gè)矩形在另一個(gè)矩形的上方或下方,或在左側(cè)或右側(cè),并且有一定的距離時(shí),這意味著兩個(gè)矩形不相交