您现在的位置是:首页 >

三级模式映射 不同映射模式下的直线输出的效果问题[2]

火烧 2022-12-05 22:36:27 1044
不同映射模式下的直线输出的效果问题[2]   结论  由于显示器的像素点精度问题 在使用Pe 进行绘制时 会进行四舍五入   如果当前映射模式不合适 会导致应用端不同的输入在四舍五入后 得到一样的显示

不同映射模式下的直线输出的效果问题[2]  

  结论

  由于显示器的像素点精度问题 在使用Pen进行绘制时 会进行四舍五入

  如果当前映射模式不合适 会导致应用端不同的输入在四舍五入后 得到一样的显示

三级模式映射 不同映射模式下的直线输出的效果问题[2]

  解决办法 如Excel一般 不要提供太小的线宽 比如最小线宽必须是折算后的一个像素 如 / = mm

  第四步 以上规则只适用于Pen的Line绘制方法 直线还可以通过FillRect或FillSolidRect方式 并且会出现开头讲的现像 来 再试试FillSolidRect会如何

  long xStart = ;   long xLineLen = * ;   long xInterval = ;   for(int ii= ;ii<= ;ii++)   {     CRect rc(xStart+xInterval*ii xStart+xInterval*ii+ii+ xLineLen);     dc FillSolidRect(rc RGB( ));   } 

  结果

  只显示出后四条线  为何?为啥不四舍五入了呢?

  第五步 矩形可能会是先四舍五入再算宽度的?是吗?做个测试先  打印时 加多一行测试  TRACE(_T( n%f %f ) rc left* rc right* ); 输出如下

                       

  假设一下 如果先四舍五入 然后再相减 得到宽度是                  比较一下输出效果 果然如此

lishixinzhi/Article/program/net/201311/14846  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码