2015-08-21 102 views
0

我如何得到一个真正的C#直线?下面的代码绘制了一条线,很好,但是这条线并不完美,它不是直接逐个像素,有没有更好的代码可以产生更好,更准确的直线?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); 
    } 
} 
} 
+1

什么是有角度的直线? – Kritner

+0

刚刚编辑,我的意思是'更好,准确,直线' – Traitor

+2

为什么当x坐标不同时它会是直的? – Shawn

回答

0

您必须关闭AntiAlias以绘制像素完美线条。

gObject.SmothingMode = SmoothingMode.None; 

不要忘了把它放回去,以Default后,这样你就不会改变,需要anitialias到好看图像渲染或其他的东西

+0

我在哪里把代码行放在我的代码中? – Traitor

+0

在绘制线条之前,它基本上将渲染模式更改为“不平滑” –

+0

很好的了解,但可能与他想要的完全相反。 – TaW