我需要绘制(并填充)一个像素完美的,非抗锯齿的对称椭圆形。

我已经尝试过InterpolationModeSmoothingModePixelOffsetMode的各种组合,但是我尝试过的所有组合都无法确保椭圆在所有尺寸下均保持对称和非抗锯齿。

不幸的是,有关该主题的MSDN文档不是很准确。

用于绘图的代码:

g.InterpolationMode = InterpolationMode.NearestNeighbor;
g.SmoothingMode = SmoothingMode.None;
g.PixelOffsetMode = PixelOffsetMode.None;
g.DrawEllipse(new Pen(colorPalette.SelectedColor), rect);

填充非抗锯齿椭圆也是如此。

有人知道解决方案吗?

最佳答案

试试这个,是否足够完美? :)

e.Graphics.InterpolationMode = InterpolationMode.Bilinear;
e.Graphics.PixelOffsetMode = PixelOffsetMode.Half;
e.Graphics.SmoothingMode = SmoothingMode.None;
e.Graphics.FillEllipse(Brushes.Black, rect);

10-08 07:24