簡體   English   中英

關於類 CRect & Rect, Width = right - left

[英]About class CRect & Rect, Width = right - left

是C++和mfc的問題。 比如left = 3,right = 8。這不是說從左到右有6個像素嗎? 為什么寬度=右-左? 如果我知道一個代表圖像矩形的矩形,當我為圖像數據分配內存時,我應該使用哪個? 寬度=右-左,還是寬度=右-左+1? 我是圖像處理的初學者。 這真的讓我很困惑。 感謝您的幫助!

如果我們談論 CRect 和 RECT, 文檔很清楚。

按照慣例,矩形的右邊緣和下邊緣通常被認為是互斥的。 換句話說,坐標為 ( right, bottom ) 的像素位於矩形之外。 例如,當 RECT 傳遞給 FillRect 函數時,矩形被填充到但不包括右列和底行像素。 此結構與 RECTL 結構相同。

“包含下界,不包含上界”的原則就是在這里用到的。 所以元素的數量總是邊界之間的差異。

另一種思考方式是矩形的寬度是從左到右的距離的度量。 當左等於右時(例如:左 = 1 和右 = 1),它們之間的距離為零(注意距離可以為負)。

當使用RECT表示像素坐標時,我們經常想知道從左到右的像素 當左等於右時(例如:左 = 1 和右 = 1),我們知道我們在左/右方向只有一個像素。 沒有預制函數來計算這個count ,因此您需要取寬度的絕對值並加 1。

在 C/C++ 中:

        int count = abs(myRect.right - myRect.left) + 1;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM