2015-05-05 31 views
2

這是一個關於C++和mfc的問題。 例如,left = 3,right = 8。是不是表示從左到右有6個像素?爲什麼寬度=右 - 左?如果我知道表示圖像矩形的矩形,當爲圖像數據分配內存時,我應該使用哪一個?寬度=左右,或寬度=右 - 左+ 1?我是圖像處理的初學者。它真的讓我困惑。感謝您的幫助!關於class CRect&Rect,Width = right-left

+1

它只是寬度=右 - 左。這很令人困惑,因爲在數學中線的粗細爲零。但在圖形中,厚度至少爲1.使用黑色筆和白色筆刷,CRect(0,0,2,2)爲4個黑色點。您決定邊界在哪裏,以及該區域是什麼。 CRect(0,0,1,1)預計打印一個點,但它實際上不打印任何內容。 CRect(1,1,1,1)沒有任何意義,如果你畫它,你什麼也得不到。 –

+0

@BarmakShemirani你應該讓你的評論一個答案。 –

+0

@Michael Walz:你說得對。下次! –

回答

5

如果我們在談論CRect和RECT,那麼documentation就是明確的。

按照慣例,矩形的右邊和底邊通常被認爲是獨佔的。換句話說,座標爲(右,下)的像素緊靠矩形的外側。例如,當RECT傳遞給FillRect函數時,該矩形被填充到但不包括像素的右列和底行。這個結構與RECTL結構相同。

這裏使用「包含下界,獨佔上限」的原理。所以元素的數量永遠是邊界之間的差異。

+0

明白了!謝謝! – butterfly

+0

當我在MSDN中查找時,我只是錯過了這些信息。我應該更加小心。感謝您的幫助! – butterfly

+0

增加了關於「包含較低的排他性上限」的更多評論。 – xMRi

相關問題