[問題] 是否有判斷兩個長方形是否有覆蓋關係的函數?

看板C_and_CPP作者 (索爾)時間14年前 (2010/06/01 23:44), 編輯推噓9(9011)
留言20則, 8人參與, 最新討論串1/1
各位高手您好 小弟目前要寫一個程式 要判斷前後抓到的兩個長方型區域是否有覆蓋或部分覆蓋 要對有覆蓋的地方做處理 小弟原本是使用每次都抓取左上與右下角的座標去判斷使否有覆蓋關係 但小弟的老師覺得這樣做沒有效率 給了小弟一個函數PTINREGION要小弟去研究 但小弟研究過後 發現該函數只是判斷某個點是否有在某個區域內 跟小弟要做的兩個長方型區域是否有覆蓋含意不太一樣 不知道是不是有高手會知道 兩個長方型區域之間的覆蓋關係 有這種函數可以用嗎? 若有的話 能提供該函數給小弟做參考嗎? 感激不盡 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.112.146

06/01 23:46, , 1F
這我們作業剛寫過,要用 Interval Tree
06/01 23:46, 1F

06/01 23:46, , 2F
唔 不對 我們是處理一大堆矩形
06/01 23:46, 2F

06/01 23:54, , 3F
如果一個點同時在兩個矩形範圍內, 不就表示這兩個矩形一
06/01 23:54, 3F

06/01 23:54, , 4F
定互相有重疊到嗎?? 只是完全覆蓋似乎還判斷不出來....
06/01 23:54, 4F

06/01 23:56, , 5F
測試一個矩形的左上角和右下角有沒有在另一個矩形裡面
06/01 23:56, 5F

06/02 00:19, , 6F
對喔, 樓上說的是, 小弟耍笨了....Orz
06/02 00:19, 6F

06/02 00:31, , 7F
紅十字的case 互相都沒有點在另一個矩形內喔
06/02 00:31, 7F

06/02 00:32, , 8F
也要看矩形能否旋轉吧 要是某個矩形的"右上角" 插進
06/02 00:32, 8F

06/02 00:33, , 9F
另一個矩形的邊咧?
06/02 00:33, 9F

06/02 00:34, , 10F
變得複雜起來了....Orz
06/02 00:34, 10F

06/02 00:34, , 11F
光看左上右下不夠吧...
06/02 00:34, 11F

06/02 00:34, , 12F
照原po的描述比較像不旋轉正著看的矩型?? 不過就算如此
06/02 00:34, 12F

06/02 00:35, , 13F
樓上s大說的紅十字型也是問題. 另不好意思斷到D大...Orz
06/02 00:35, 13F

06/02 00:39, , 14F
V大別在意 ^^ 話說如果不旋轉就好做了啊
06/02 00:39, 14F

06/02 00:40, , 15F
取兩個的 top min, bottom max, left max, right min
06/02 00:40, 15F

06/02 00:42, , 16F
判斷出來的是否 top > bottom && right > left
06/02 00:42, 16F

06/02 00:45, , 17F
是兜得出來啦, 在想要用他老師說的PtInRegion要怎麼做XD
06/02 00:45, 17F

06/02 01:27, , 18F
手邊有MFC的話, 可以參考CRect::UnionRect的邏輯
06/02 01:27, 18F

06/02 07:21, , 19F

06/02 21:12, , 20F
06/02 21:12, 20F
文章代碼(AID): #1C1IhR-U (C_and_CPP)