2015-08-21 167 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