【发布时间】:2013-06-21 04:37:21
【问题描述】:
我需要使用 C# 在 Windows 窗体中创建一些简单的图形。简单地说,我的意思是线条,圆圈等。但是,当我画例如实心圆,边缘不平滑(正如使用方形像素绘制圆时所预期的那样),但是在矢量程序中绘制具有相同像素数的相同圆时,它看起来很完美。为了这个例子,我一直在 Inkscape 中绘图。
也许矢量软件使用某种渲染函数来平滑颜色,但是这在 C# 中是否可能而无需创建太多代码?这是一个代码示例,它使用Graphics 创建一个画布来绘制。
private void StatGraphicsPanel_Paint(object sender, PaintEventArgs e)
{
Graphics canvas = e.Graphics;
Brush brush = Brushes.Aqua;
canvas.FillEllipse(brush, 0, 0, 10, 10);
}
解决方案 这段代码可以解决问题:
private void StatGraphicsPanel_Paint(object sender, PaintEventArgs e)
{
Graphics canvas = e.Graphics;
canvas.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
Brush brush = Brushes.Aqua;
canvas.FillEllipse(brush, 0, 0, 10, 10);
}
【问题讨论】:
-
显示一些代码,否则我们无法帮助您。
-
我会选择WPF,而不是 WinForms...
-
尝试在文档中搜索您的图形对象是否具有某些抗锯齿属性(如果它们已将其设置为 true)
-
"(正如使用方形像素绘制圆形时所预期的那样)" 无论您使用哪种编程语言,所有形状都是由像素组成的。您需要提高形状的分辨率。或者给我看代码。
-
您可以从 Photoshop 之类的程序中获得好看的图形。来自设计师,而不是程序员。