我最近在看程式就是在像素坐標推導的地方,在數學公式推匯出來后用程式撰寫的時候最后為什么都加一個0.5(+0.5)
例如數學公式是X1=X2/b(影像的縮放),(其中X1是原像素坐標,X2是新像素坐標)而到了程式里就變成了i1=(long)(i/c+0.5);這里的i1就相當于X1,i就相當于X2,C就相當于b,我不知道這里為社么要加上(+0.5),請那位好人解釋一下!
uj5u.com熱心網友回復:
螢屏坐標(0,0) 它對應的是這個像素點(像素點實際就是個方塊)的中心,0.5就是這個偏移uj5u.com熱心網友回復:
應該是為了四舍五入,坐標都是int型,在計算程序中一般都是double或float,計算結果直接取整誤差較大,+0.5能起到四舍五入的效果。uj5u.com熱心網友回復:
應該是化為整型時為確保截斷的四舍五入吧比如 0.9 --》 0.9+0.5 = 1.4 --》1;0.4 --》 0.4+0.5 = 0.9 --》0
uj5u.com熱心網友回復:
為了對應像素的中心吧。uj5u.com熱心網友回復:
同意2樓和3樓意見,轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/130032.html
上一篇:運行時出現access violation at address in module'xxx.dll' read of address
下一篇:C++請教。。。
