java輸出矩形 如何判斷空間坐標(biāo)系中兩個(gè)長(zhǎng)方形是否相交?
如何判斷空間坐標(biāo)系中兩個(gè)長(zhǎng)方形是否相交?實(shí)際上,一個(gè)空間矩形的方程可以列為兩個(gè)不等式(形式可能是:B1≤線性方程≤B2),它們的交點(diǎn)就是所有矩形中包含的點(diǎn)。這兩個(gè)矩形的不相等取決于交點(diǎn)是否為空。如果是
如何判斷空間坐標(biāo)系中兩個(gè)長(zhǎng)方形是否相交?
實(shí)際上,一個(gè)空間矩形的方程可以列為兩個(gè)不等式(形式可能是:B1≤線性方程≤B2),它們的交點(diǎn)就是所有矩形中包含的點(diǎn)。這兩個(gè)矩形的不相等取決于交點(diǎn)是否為空。如果是,它就不會(huì)相交,否則它就會(huì)相交
判斷相交很麻煩,所以我用不相交的情況。其他情況是交叉。當(dāng)一個(gè)矩形位于另一個(gè)矩形的上方或下方,或左側(cè)或右側(cè),并且有一定的距離時(shí),這意味著這兩個(gè)矩形不相交。是R1。哦
1。線段與矩形相交:矩形有四條邊。分別判斷是否與斷線線段相交。如果有兩個(gè)交點(diǎn),則折線段與矩形相交。
2. 線段與圓相交:兩相交為相交,一相交為相切,無(wú)相交為分離。
如何判斷兩個(gè)矩形是否相交?
1. 一個(gè)矩形在另一個(gè)矩形中只有一個(gè)角點(diǎn);
2。一個(gè)矩形A在另一個(gè)矩形B的一側(cè)只有兩個(gè)頂角(在這種情況下,對(duì)于另一個(gè)矩形B,四個(gè)頂角在矩形A之外,所以我們需要交換判斷)。
3. 一個(gè)矩形穿過(guò)另一個(gè)。在考慮了三種情況之后,這位朋友覺(jué)得為這些情況編寫(xiě)代碼太復(fù)雜了,所以他去論壇提問(wèn)。有時(shí),程序員不得不從不同的方向思考。如果兩個(gè)矩形相交,一定有直線相交。只有水平線和垂直線可以交叉。兩條水平線或兩條垂直線不能交叉。所以,問(wèn)題是找出是否有相交的水平線和垂直線。另外,a線和B線的交集相當(dāng)于B線和a線的交集,因此,編寫(xiě)一個(gè)函數(shù)并多次調(diào)用就足夠了。不管怎樣,計(jì)算機(jī)是專門做簡(jiǎn)單而乏味的工作。函數(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ù)來(lái)判斷兩個(gè)矩形是否相交。只需再調(diào)用幾個(gè)相同的函數(shù)。Bool crossrect(crit&;R1,crit&;R2){//判斷兩個(gè)矩形是否相交,//從一個(gè)矩形中取一條水平線,判斷它是否與另一個(gè)矩形中的垂直線相交