سؤال

ما هي طرق GDI التي يمكنني استخدامها لرسم الشكل الأزرق الموضح في الصورة أدناه؟ يجب أن يكون المركز شفافًا.

alt text

هل كانت مفيدة؟

المحلول

هناك عدد من الطرق ولكن ربما تريد استخدام ما يلي:

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

...

نصائح أخرى

أنا أفترض GDI+ هنا AKA System.drawing مساحة الاسم.

أفضل ما يجب فعله هو النظر إلى system.drawing.drawing2d.graphicspath Class:

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

تحتاج إلى التأكد من إغلاق المسار للحصول على تأثير جوفاء.

ألن يكون من الأسهل رسمها باستخدام صورة نقطية؟ هذا ما هم عليه على أي حال :).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top