Fill the area 'bounded' by the path

   
 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Text;
using System.Windows.Forms;

public class Form1 : Form {

    protected override void OnPaint(PaintEventArgs e) {
    Graphics g = e.Graphics;
    g.FillRectangle(Brushes.White, this.ClientRectangle);
    GraphicsPath gp = new GraphicsPath();
    gp.AddLine(10, 10, 10, 50);
    gp.AddLine(10, 50, 50, 50);
    gp.AddLine(50, 50, 50, 10);
    gp.StartFigure();
    gp.AddLine(60, 10, 60, 50);
    gp.AddLine(60, 50, 100, 50);
    gp.AddLine(100, 50, 100, 10);
    gp.CloseFigure();

    Rectangle r = new Rectangle(110, 10, 40, 40);
    gp.AddEllipse(r);
    g.FillPath(Brushes.Orange, gp);
    g.DrawPath(Pens.Black, gp);
    gp.Dispose();
    }
    public static void Main() {
        Application.Run(new Form1());
    }
}

    


Rotate the text through 45 degrees

   
 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

public class Form1 : Form {

    protected override void OnPaint(PaintEventArgs e) {
    Graphics g = e.Graphics;
    g.FillRectangle(Brushes.White, this.ClientRectangle);
    Font f = new Font("Times New Roman", 24);
    g.DrawString("Rotation", f, Brushes.Black, 0, 0);
    g.RotateTransform(45);
    g.DrawString("Rotation", f, Brushes.Black, 0, 0);
    }
    public static void Main() {
        Application.Run(new Form1());
    }
}

    


Reset the transformation Translate by 30 pixels in vertical direction

   
 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

public class Form1 : Form {

    protected override void OnPaint(PaintEventArgs e) {
    Graphics g = e.Graphics;
    g.FillRectangle(Brushes.White, ClientRectangle);

    g.DrawEllipse(Pens.Black, 20, 20, 30, 50);

    g.TranslateTransform(-15, 0);
    g.DrawEllipse(Pens.Black, 20, 20, 30, 50);

    g.ResetTransform();
    g.TranslateTransform(0, 30);
    g.DrawEllipse(Pens.Black, 20, 20, 30, 50);
    }
    public static void Main() {
        Application.Run(new Form1());
    }
}

    


Apply the scaling transformation(scale subsequent operations by 2x horizontally and 3x vertically)

   
 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

public class Form1 : Form {

    protected override void OnPaint(PaintEventArgs e) {
    Graphics g = e.Graphics;
    g.FillRectangle(Brushes.White, this.ClientRectangle);
    g.DrawRectangle(Pens.Black, 10, 10, 50, 50);
    g.DrawEllipse(Pens.Black, 10, 10, 10, 10);

    g.ScaleTransform(2.0f, 3.0f);

    g.DrawRectangle(Pens.Black, 10, 10, 50, 50);
    g.DrawEllipse(Pens.Black, 10, 10, 10, 10);
    }
    public static void Main() {
        Application.Run(new Form1());
    }
}

    


Transform and RotateTransform in a loop

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

public class Form1 : Form {

protected override void OnPaint(PaintEventArgs e) {
Graphics g = e.Graphics;
g.FillRectangle(Brushes.White, this.ClientRectangle);
Font f = new Font(“Times New Roman”, 16);
for (float angle = 0; angle < 360; angle += 45) { g.ResetTransform(); g.TranslateTransform(ClientRectangle.Width / 2, ClientRectangle.Height / 2); g.RotateTransform(angle); g.DrawString("Hello, World", f, Brushes.Black, 50, 0); } } public static void Main() { Application.Run(new Form1()); } } [/csharp]

Rotate the text 45 degrees clockwise then Translate the text 150 pixels horizontally

   
 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

public class Form1 : Form {

    protected override void OnPaint(PaintEventArgs e) {
    Graphics g = e.Graphics;
    g.FillRectangle(Brushes.White, this.ClientRectangle);
    Font f = new Font("Times New Roman", 24);
    g.DrawString("Rotate then Translate", f, Brushes.Black, 0, 0);
    g.RotateTransform(45);
    g.TranslateTransform(150, 0);
    g.DrawString("Rotate  then Translate ", f, Brushes.Black, 0, 0);
    }
    public static void Main() {
        Application.Run(new Form1());
    }
}

    


Clipping: ResetClip

   
 
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

using System.Drawing.Drawing2D;

public class Form1 : System.Windows.Forms.Form {
    GraphicsPath gP;
    [STAThread]
    static void Main() {
        Application.Run(new Form1());
    }
    protected override void OnPaint(System.Windows.Forms.PaintEventArgs e) {
        Graphics g = e.Graphics;
        DrawPathTransform(g);
        g.Dispose();
    }
    void AddStringToPath(string s) {
        int fSt = (int)FontStyle.Regular;
        Point xy = new Point(50, 10);
        FontFamily fF = new FontFamily("Times new roman");
        StringFormat sFr = StringFormat.GenericDefault;

        gP.AddString(s, fF, fSt, 100, xy, sFr);
    }
    void DrawPathTransform(Graphics g) {
        gP = new GraphicsPath();
        AddStringToPath("C#");

        g.FillPath(Brushes.Gray, gP);
        Matrix m = new Matrix();
        m.Translate(5, 5);
        gP.Transform(m);
        g.FillPath(Brushes.Yellow, gP);
        g.DrawPath(Pens.Red, gP);
    }
    void DrawClip(Graphics g) {
        gP = new GraphicsPath();
        AddStringToPath("C#");

        g.SetClip(gP);
        g.TranslateClip(-5, -5);

        RectangleF rc = gP.GetBounds();
        rc.Offset(-5, -5);
        g.FillRectangle(Brushes.Gray, rc);

        g.ResetClip();
        g.FillPath(Brushes.Yellow, gP);
        g.DrawPath(Pens.Red, gP);
    }
}