熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

不同映射模式下的直線輸出的效果問題[2]

2022-06-13   來源: .NET編程 

  結論

  由於顯示器的像素點精度問題在使用Pen進行繪制時會進行四捨五入

  如果當前映射模式不合適會導致應用端不同的輸入在四捨五入後得到一樣的顯示

  解決辦法如Excel一般不要提供太小的線寬比如最小線寬必須是折算後的一個像素/ = mm

  第四步以上規則只適用於Pen的Line繪制方法直線還可以通過FillRect或FillSolidRect方式並且會出現開頭講的現像再試試FillSolidRect會如何

  long xStart = ;
  long xLineLen = *;
  long xInterval = ;
  for(int ii=;ii<=;ii++)
  {
    CRect rc(xStart+xInterval*iixStart+xInterval*ii+ii+xLineLen);
    dcFillSolidRect(rcRGB());
  } 

  結果

  只顯示出後四條線 為何?為啥不四捨五入了呢?

  第五步矩形可能會是先四捨五入再算寬度的?是嗎?做個測試先 打印時加多一行測試 TRACE(_T(\n%f%f)rcleft*rcright*); 輸出如下

   
   
   
   
   
   

  假設一下如果先四捨五入然後再相減得到寬度是                比較一下輸出效果果然如此

[]  []  


From:http://tw.wingwit.com/Article/program/net/201311/14846.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.