簡體   English   中英

C#畫一條直線

[英]c# draw a straight line

如何使用C#獲得REAL直線? 下面的代碼畫了一條線,很棒,但是這條線不是完美的,不是逐像素的直線,是否有更好的代碼可以產生更好,更准確的直線?

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);
    }
}
}

您必須關閉AntiAlias才能繪制像素完美線條。

gObject.SmothingMode = SmoothingMode.None;

不要忘記在之后將其恢復為Default ,這樣就不會更改圖像渲染或其他需要使用抗鋸齒外觀的東西。

您所看到的直線實際上是一個技巧。 它被“平滑”了,所以鋸齒狀的部分被陰影像素包圍(請參見下文)。 這說明了如何做到最好。

https://msdn.microsoft.com/zh-CN/library/system.drawing.graphics.smoothingmode.aspx

下圖是相同的。 頂部只是放大了。

放大

縮小

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM