矩形重疊檢測。

2021-09-06 16:32:25 字數 2667 閱讀 8877

// 矩形重疊型別注釋

// corner_overlap

// --------------------

// | |

// | |

// | **********|**********

// | * | *

// | * | *

// ---------*---------| *

// * *

// * *

// *********************

//

// anchor_overlap

// ----

// | |

// | |

// *******|**|*******

// * | | *

// * | | *

// * ---- *

// * *

// ******************

// same_width_overlap

// |-----------------|

// | |

// ******************|

// |-----------------*

// * *

// *******************

//// inside_overlap

// **********************

// * *

// * --------- *

// * | | *

// * | | *

// * --------- *

// * *

// **********************

//

// cross_overlap

// -----

// | |

// | |

// *****|***|******

// * | | *

// * | | *

// *****|***|******

// | |

// -----

typedef enum em_rectoverlaptype

em_rectoverlaptype;

//判斷rect重疊的型別,判定方法

//no_overlap: 重疊矩形面積為0

//corner_overlap: 重疊矩形的乙個角的兩條邊,與被判定矩形的乙個角的兩條邊座標一致(角的2條邊)

//same_width_overlap: 兩個矩形的橫向座標或者縱向座標一致,並且重疊。

//anchor_overlap: 重疊矩形的三條邊與被判定矩形的三條邊重疊(3個邊)

//inside_overlap: 重疊矩形與被判定矩形的其中之一完全重合(4個邊)

//cross_overlap : 重疊矩形的平行的兩條邊與被判定矩形之一的對應兩條邊重疊,另兩條邊與另乙個被判定矩形的對應的另兩條邊重疊(2對對應的兩條邊)

//後三種的相同部分是都有平行的兩條邊重合,所以判定先重後三行開始

em_rectoverlaptype judgeoverlaptypebytworect(const em_rect& firstrect,const em_rect& overlaprect)

else

}else if (overlaprect.bottom == firstrect.bottom)

else

}else

}else if ((overlaprect.top == firstrect.top) && (overlaprect.bottom == firstrect.bottom) )

else }

em_rectoverlaptype judgeoverlaptype(const em_rect& firstrect,const em_rect& secondrect,const em_rect& overlaprect)

else

else

}}em_rectoverlaptype getrectoverlaptype(const em_rect& firstrect,const em_rect& secondrect)

else

}

矩形重疊檢測。

矩形重疊型別注釋 corner overlap anchor overlap same width overlap inside overlap cross overlap typedef enum em rectoverlaptype em rectoverlaptype 判斷rect重疊的型別,...

矩形法 矩形重疊

問題一 矩形以列表 x1,y1,x2,y2 的形式表示,其中 x1,y1 為左下角的座標,x2,y2 是右上角的座標。如果相交的面積為正,則稱兩矩形重疊。需要明確的是,只在角或邊接觸的兩個矩形不構成重疊。給出兩個矩形,判斷它們是否重疊並返回結果。示例 1 輸入 rec1 0,0,2,2 rec2 1...

626 矩形重疊

中文english 給定兩個矩形,判斷這兩個矩形是否有重疊。樣例 1 輸入 l1 0,8 r1 8,0 l2 6,6 r2 10,0 輸出 true樣例 2 輸入 0,8 r1 8,0 l2 9,6 r2 10,0 輸出 false l1代表第乙個矩形的左上角 r1代表第乙個矩形的右下角 l2代表第...