如何绘制曲折线?

时间:2014-02-18 05:45:26

标签: winforms system.drawing

我正在创建一个基于文档的应用程序,我想在文本下面绘制一条水平线。但是,线不应该是直的。我想画一条这样的线。
Zigzag line

目前我使用System.Graphics对象绘制任何对象。

private void DrawLine(Graphics g, Point Location, int iWidth)
{
    iWidth = Convert.ToInt16(iWidth / 2);
    iWidth = iWidth * 2;
    Point[] pArray = new Point[Convert.ToInt16(iWidth / 2)];
    int iNag = 2;
    for (int i = 0; i < iWidth; i+=2)
    {
        pArray[(i / 2)] = new Point(Location.X + i , Location.Y + iNag);
        if (iNag == 0)
            iNag = 2;
        else
            iNag = 0;
    }
    g.DrawLines(Pens.Black, pArray);
}

已更新
上面的代码工作正常,线条绘制完美但是,此代码会影响应用程序性能。还有另一种方法可以做这件事。

1 个答案:

答案 0 :(得分:1)

如果你想要快速绘图,只需要制作一个所需行的png图像,宽度大于你需要的宽度,然后绘制图像:

private void DrawLine(Graphics g, Point Location, int iWidth)
{
    Rectangle srcRect = new Rectangle(0, 0, iWidth, zigzagLine.Height);
    Rectangle dstRect = new Rectangle(Location.X, Location.Y, iWidth, zigzagLine.Height);

    g.DrawImage(zigzagLine, dstRect, srcRect, GraphicsUnit.Pixel);
}

zigzagLine是位图。

瓦尔特