C# gdi drawing2d مساعدة
سؤال
ما هي طرق GDI التي يمكنني استخدامها لرسم الشكل الأزرق الموضح في الصورة أدناه؟ يجب أن يكون المركز شفافًا.
المحلول
هناك عدد من الطرق ولكن ربما تريد استخدام ما يلي:
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
تحتاج إلى التأكد من إغلاق المسار للحصول على تأثير جوفاء.
ألن يكون من الأسهل رسمها باستخدام صورة نقطية؟ هذا ما هم عليه على أي حال :).
لا تنتمي إلى StackOverflow