C#GDI Drawing2D帮助

时间:2010-03-30 21:02:31

标签: c# graphics drawing2d

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

alt text

3 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分: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))

...

答案 2 :(得分:-1)

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