c#画一条直线

时间:2015-08-21 17:59:51

标签: c# winforms line draw

如何使用c#获得真正的直线?下面的代码绘制了一条线,很棒,但这条线并不完美,它不是逐像素的直线,是否有更好的代码可以产生更好,更准确的直线?

namespace Dimension3D
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void canvas_Paint(object sender, PaintEventArgs e)
    {
        Graphics gObject = canvas.CreateGraphics();

        Brush red = new SolidBrush(Color.Red);
        Pen redPen = new Pen(red, 8);

        gObject.DrawLine(redPen, 10, 10, 35, 500);
    }
}
}

2 个答案:

答案 0 :(得分:0)

您必须关闭AntiAlias才能绘制完美的像素线。

gObject.SmothingMode = SmoothingMode.None;

不要忘记将其放回Default,这样你就不会改变图像渲染或其他需要anitialias看起来不错的东西

答案 1 :(得分:0)

你所看到的直线实际上就是一招。它被“平滑”,因此锯齿状部分被阴影像素包围(见下文)。这解释了如何更好地做到这一点。

https://msdn.microsoft.com/en-us/library/system.drawing.graphics.smoothingmode.aspx

下面的图片是相同的。顶部刚刚放大。

Zoomed In

Zoomed Out