最近做了一个绘制曲线图的控件,里面需要绘制坐标轴、网格线、曲线等,各类线宽可设置,这里就有一个问题,线是什么落在像素点上,以及怎么擦出线的问题。
下面我我为了弄清这些问题写的测试代码及效果图:
private void DrawLineForm_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
Pen p = new Pen(Color.Black, 1);
Pen p5 = new Pen(Color.Green, 10);
for (int i = 0; i < ClientRectangle.Width; i += 20)
{
g.DrawLine(p5, i, 0, i, ClientRectangle.Height);
}
for (int j = 0; j < ClientRectangle.Height; j += 20)
{
g.DrawLine(p5, 0, j, ClientRectangle.Width, j);
}
for (int i = 0; i < ClientRectangle.Width; i += 20)
{
g.DrawLine(P