![]() |
1
9
这些方法工作正常,您只需考虑 消除混叠和舍入 . 首先,启用“抗锯齿”(anti-aliasing)以查看所有内容(而不仅仅是取整的结果):
现在FillRectangle(10,10,10,10)将产生模糊的结果,DrawRectangle(10,10,10,10)将是尖锐的。 模糊的结果意味着 . 如果您需要打电话:
对齐网格上矩形的左上角。
仅圆坐标 ,因为最小单位是1像素。在使用使用抗锯齿的GDI+时,请注意点的大小为零并且不存在 在像素中心 (不是整个像素)。 |
![]() |
2
1
问题中两种图形方法中的矩形都以
在计算两点的宽度和高度时,请记住将原点像素与差加1。 例如,假设要填充从点(5,5)到点(10,20)的矩形。矩形的宽度是6,而不是5。矩形的高度是16,而不是15。 |
|
3
-2
行为上的差异是由于这两种算法所做的事情完全不同,这有点违反直觉。 DrawRectangle以长方体的形状绘制四条线。FillRectangle生成一个W*H的填充像素束。从这一点很容易看出行为差异的原因。即相似性假设的错误性。绘制四条线与生成一个长方体像素团有很大的不同。 |