【问题标题】:C# GDI Drawing2D helpC# GDI Drawing2D 帮助
【发布时间】:2011-02-02 16:07:04
【问题描述】:

我可以使用哪些 GDI 方法来绘制下图所示的蓝色形状?中心必须是透明的。

【问题讨论】:

    标签: c# graphics drawing2d


    【解决方案1】:

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

    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))
    

    ...

    【讨论】:

    • 我认为矩形和多边形都可以,我试试看。
    • @Kevin:添加了一些示例绘图代码来扩展我的想象。请注意,它是硬编码的,不会费心勾画内部三角形。今天时间不够。 ;-)
    【解决方案2】:

    我在这里假设 GDI+ 又名 System.Drawing 命名空间。

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

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

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

    【讨论】:

      【解决方案3】:

      使用位图绘制不是更容易吗?无论如何,这就是他们的目的:)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多