校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 矩形相交以及求出相交的區域的原理解析

矩形相交以及求出相交的區域的原理解析

熱門標簽:去哪里辦卡 熱血傳奇沃瑪森林地圖標注 鄭州中國移動400電話申請 無錫電銷機器人銷售 招聘信息 地圖標注植物名稱 地圖標注審核工作怎么樣注冊 福建ai電銷機器人加盟公司 揭陽外呼系統公司 南召400電話辦理資費
(1)設計一個算法,確定兩個矩形是否相交(即有重疊區域)
(2)如果兩個矩形相交,設計一個算法,求出相交的區域矩形

(1) 對于這個問題,一般的思路就是判斷一個矩形的四個頂點是否在另一個矩形的區域內。這個思路最簡單,但是效率不高,并且存在錯誤,錯誤在哪里,下面分析一 下。

如上圖,把矩形的相交(區域重疊)分成三種(可能也有其他劃分),對于第三種情況,如圖中的(3),兩個矩形相交,但并不存在一個矩形的頂點在另一個矩形 內部。所以那種思路存在一個錯誤,對于這種情況的相交則檢查不出。

仔細觀察上圖,想到另一種思路,那就是判斷兩個矩形的中心坐標的水平和垂直距離,只要這兩個值滿足某種條件就可以相交。
矩形A的寬 Wa = Xa2-Xa1 高 Ha = Ya2-Ya1
矩形B的寬 Wb = Xb2-Xb1 高 Hb = Yb2-Yb1
矩形A的中心坐標 (Xa3,Ya3) = ( (Xa2+Xa1)/2 ,(Ya2+Ya1)/2 )
矩形B的中心坐標 (Xb3,Yb3) = ( (Xb2+Xb1)/2 ,(Yb2+Yb1)/2 )
所以只要同時滿足下面兩個式子,就可以說明兩個矩形相交。1) | Xb3-Xa3 | = Wa/2 + Wb/2
2) | Yb3-Ya3 | = Ha/2 + Hb/2
即:
| Xb2+Xb1-Xa2-Xa1 | = Xa2-Xa1 + Xb2-Xb1
| Yb2+Yb1-Ya2-Ya1 | =Y a2-Ya1 + Yb2-Yb1

(2) 對于這個問題,假設兩個矩形相交,設相交之后的矩形為C,且矩形C的左上角坐標為(Xc1,Yc1),右下角坐標為(Xc2,Yc2),經過觀察上圖,很 顯然可以得到:
Xc1 = max(Xa1,Xb1)
Yc1 = max(Ya1,Yb1)
Xc2 = min(Xa2,Xb2)
Yc2 = min(Ya2,Yb2)
這樣就求出了矩形的相交區域。
另外,注意到在不假設矩形相交的前提下,定義(Xc1,Yc1),(Xc2,Yc2),且Xc1,Yc1,Xc2,Yc2的值由上面四個式子得出。這樣, 可以依據Xc1,Yc1,Xc2,Yc2的值來判斷矩形相交。
Xc1,Yc1,Xc2,Yc2只要同時滿足下面兩個式子,就可以說明兩個矩形相交。
3) Xc1 = Xc2
4) Yc1 = Yc2
即:
max(Xa1,Xb1) = min(Xa2,Xb2)
max(Ya1,Yb1) = min(Ya2,Yb2)
您可能感興趣的文章:
  • Android實現矩形區域截屏的方法
  • 解決IntelliJ IDEA中鼠標拖動選擇為矩形區域問題

標簽:景德鎮 南昌 文山 鹽城 黔南 宣城 桂林 東莞

巨人網絡通訊聲明:本文標題《矩形相交以及求出相交的區域的原理解析》,本文關鍵詞  矩形,相交,以及,求出,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《矩形相交以及求出相交的區域的原理解析》相關的同類信息!
  • 本頁收集關于矩形相交以及求出相交的區域的原理解析的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 乌审旗| 安义县| 防城港市| 当阳市| 文山县| 阜城县| 鄯善县| 筠连县| 杂多县| 云和县| 涿鹿县| 涿州市| 崇信县| 隆昌县| 达拉特旗| 台北市| 宣恩县| 吉木乃县| 乐山市| 禄丰县| 墨江| 西乡县| 饶阳县| 高青县| 柘城县| 阆中市| 浦城县| 兰西县| 海林市| 大名县| 朝阳县| 德钦县| 泾阳县| 宜丰县| 东辽县| 醴陵市| 塘沽区| 正蓝旗| 新乡市| 界首市| 岳西县|