Feedback

C# - DrawPoint als Erweiterungsmethode für Graphics

Veröffentlicht von am 02.01.2013
(0 Bewertungen)
Öfters braucht man eine Funktion fie einen einfachen Punkt auf die Graphics-Fläche zeichnet. Doch da bietet das .NET Framework leider nichts, darum habe ich diese Erweiterungsmethoden für die Graphics-Klasse erstellt.
Ich habe gleich mehrere Überladungen zum zeichnen von einem oder mehreren Punkten geschrieben. Die Farbe muss als Color-Objekt übergeben werden. Der Mittelpunkt des Punktes als Point-, PointF- oder Paar von int oder float. Optional kann der Durchmesser des Punktes angegeben werden.

Hinweis: Wenn Sie 0 als durchmesser angeben, dannwird der Punkt 1*1 Pixel groß. In den meisten größen, sieht der Punkt leicht verpixelt aus. Das liegt an der Art, wie Windows Forms die Punkte rendert.
        public static void DrawPoint(this Graphics g, Color color, Point point)
        {
            g.FillEllipse(new SolidBrush(color), point.X, point.Y, 0.1f, 0.1f);
        }
        public static void DrawPoint(this Graphics g, Color color, Point point, float d)
        {
            g.FillEllipse(new SolidBrush(color), point.X - d / 2, point.Y - d / 2, 0.1f + d, 0.1f + d);
        }
        public static void DrawPoint(this Graphics g, Color color, PointF point)
        {
            g.FillEllipse(new SolidBrush(color), point.X, point.Y, 0.1f,0.1f);
        }
        public static void DrawPoint(this Graphics g, Color color, PointF point, float d)
        {
            g.FillEllipse(new SolidBrush(color), point.X - d / 2, point.Y - d / 2, 0.1f + d, 0.1f + d);
        }
        public static void DrawPoint(this Graphics g, Color color, float x, float y)
        {
            g.FillEllipse(new SolidBrush(color), x, y,  0.1f,0.1f);
        }
        public static void DrawPoint(this Graphics g, Color color, float x, float y, float d)
        {
            g.FillEllipse(new SolidBrush(color), x - d / 2, y - d / 2, 0.1f +  d, 0.1f + d);
        }
        public static void DrawPoint(this Graphics g, Color color, int x, int y)
        {
            g.FillEllipse(new SolidBrush(color), x, y, 0.1f, 0.1f);
        }
        public static void DrawPoint(this Graphics g, Color color, int x, int y, float d)
        {
            g.FillEllipse(new SolidBrush(color), x - d / 2, y - d / 2, 0.1f + d, 0.1f + d);
        }
        public static void DrawPoints(this Graphics g, Color color, Point[] points)
        {
            foreach (Point point in points)
                DrawPoint(g, color, point);
        }
        public static void DrawPoints(this Graphics g, Color color, Point[] points, float d)
        {
            foreach (Point point in points)
                DrawPoint(g, color, point, d);
        }
        public static void DrawPoints(this Graphics g, Color color, PointF[] points)
        {
            foreach (PointF point in points)
                DrawPoint(g, color, point);
        }
        public static void DrawPoints(this Graphics g, Color color, PointF[] points, float d)
        {
            foreach (PointF point in points)
                DrawPoint(g, color, point d);
        }

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!