如何在WinForms,GDI +中绘制和填充像素完美的对称椭圆?

时间:2013-01-29 12:39:23

标签: c# winforms gdi+

我需要绘制(并填充)像素完美,非反对称的对称椭圆。

我尝试了InterpolationModeSmoothingModePixelOffsetMode的各种组合,但我尝试过的组合都没有确保椭圆保持对称且完全没有反对大小。

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

Ellipses not symmetric at all sizes

用于绘图的代码:

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

填充非反椭圆椭圆也是如此。

有人知道这方面的解决方案吗?

2 个答案:

答案 0 :(得分:2)

试试这个,它足够完美吗? :)

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

答案 1 :(得分:0)

如果您还没有达到视网膜显示的理想圆,则根据Leff的回答,将平滑模式更改为抗锯齿或高质量会固定像素化圆。

e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;