代码之家  ›  专栏  ›  技术社区  ›  Kevin

C#GDI绘图2D帮助

  •  1
  • Kevin  · 技术社区  · 16 年前

    alt text

    3 回复  |  直到 16 年前
        1
  •  1
  •   Paul Sasik    16 年前

    有许多方法,但您可能希望使用以下方法:

    FillRectangle
    FillPolygon
    DrawLine
    

    因为它看起来像你的形状可以减少到一个矩形和两个多边形,然后概述了几行。

    下面是一个非常简单和硬编码的例子来说明我的想法:

    Private Sub Control_Paint(ByVal sender As Object, ByVal e As PaintEventArgs) _
    Handles MyBase.Paint
        Dim g As Graphics = e.Graphics
    
        g.FillRectangle(Brushes.Aqua, New Rectangle(10, 10, 10, 90))
        g.FillPolygon(Brushes.Aqua, New Point() { _
            New Point(10, 10), _
            New Point(20, 10), _
            New Point(40, 50), _
            New Point(30, 50)})
        g.FillPolygon(Brushes.Aqua, New Point() { _
            New Point(10, 100), _
            New Point(20, 100), _
            New Point(40, 50), _
            New Point(30, 50)})
        g.DrawLine(Pens.Black, New Point(10, 10), New Point(10, 100))
        g.DrawLine(Pens.Black, New Point(10, 100), New Point(20, 100))
        g.DrawLine(Pens.Black, New Point(20, 100), New Point(40, 50))
        g.DrawLine(Pens.Black, New Point(40, 50), New Point(20, 10))
        g.DrawLine(Pens.Black, New Point(20, 10), New Point(10, 10))
    

    ...

        2
  •  1
  •   James Westgate    16 年前

    最好的方法是查看System.Drawing.Drawing2d.GraphicsPath类:

    http://msdn.microsoft.com/en-us/library/system.drawing.drawing2d.graphicspath.aspx

    您需要确保关闭路径以获得空心效果。

        3
  •  -1
  •   Mads    16 年前