ARTICLE

GDI+ Samples: Rectangle, 3D, and Ellipse

Posted by | June 07, 2001
This article has three sample examples on GDI+ - Rectangle, Ellipse, and 3D.

Here are three sample examples on GDI+ - Rectangle, Ellipse, and 3D.

/* This source code is intended only for Amateur\Beginners & this Self Explanatory program*/
/* To Compile :
csc /r:System.dll /r:System.Drawing.dll /r:System.WinForms.dll
/r:Microsoft.Win32.InterOp.dll /out:Rectangle.exe Rectangle.cs
*/
//Rectangle.cs
namespace Gph
{
using System;
using System.WinForms;
using System.Drawing;
using System.Drawing.Drawing2D;
public class Rectangle : Form
{
private Brush bgBrush;
public Rectangle() //Constructor - Initialising Everything
{
SetStyle(ControlStyles.Opaque,
true);
Size =
new Size(450, 400);
Text = "Rectangle Tutorial - Jayant";
//Now create the brush we are going to use to paint the background
bgBrush = new SolidBrush(Color.Blue);
}
protected override void OnPaint(PaintEventArgs e)
{
Graphics g = e.Graphics;
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
//Fill the background using Solid brush and then apply a white wash
g.FillRectangle(bgBrush, ClientRectangle);
g.FillRectangle(
new SolidBrush(Color.FromARGB(180, Color.White)), ClientRectangle);
//Example of System.Drawing.Drawing2D
//Add a circle that is filled with a translucent hatch
HatchBrush hb = new HatchBrush(HatchStyle.ForwardDiagonal, Color.Green, Color.FromARGB(100, Color.Yellow));
g.FillRectangle(hb, 100, 10, 100, 100);
//Example of System.Drawing.Drawing2D
//Add a circle that is filled with a Solid Green
Brush br = new SolidBrush(Color.Green);
g.FillRectangle(br, 250, 10, 150, 50);
//Without filling in the color
//An example of System.Drawing
Pen pn = new Pen(Color.Red);
g.DrawRectangle(pn,100, 150, 100, 50);
}
public static void Main()
{
Application.Run(
new Rectangle());
}
}
}

/* This source code is intended only for Amateur\Beginners & this Self Explanatory program*/
/* To Compile :
csc /r:System.dll /r:System.Drawing.dll /r:System.WinForms.dll
/r:Microsoft.Win32.InterOp.dll /out:Ellipse.exe Ellipse.cs
*/

//Ellipse.cs
namespace Gph
{
using System;
using System.WinForms;
using System.Drawing;
using System.Drawing.Drawing2D;
public class Ellipse : Form
{
private Brush bgBrush;
public Ellipse() //Constructor - Initialising Everything
{
SetStyle(ControlStyles.Opaque,
true);
Size =
new Size(450, 400);
Text = "Ellipse Tutorial - Jayant";
//Now create the brush we are going to use to paint the background
bgBrush = new SolidBrush(Color.Blue);
}
protected override void OnPaint(PaintEventArgs e)
{
Graphics g = e.Graphics;
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
//Fill the background using Solid brush and then apply a white wash
g.FillRectangle(bgBrush, ClientRectangle);
g.FillRectangle(
new SolidBrush(Color.FromARGB(180, Color.White)), ClientRectangle);
//Example of System.Drawing.Drawing2D
//Add a circle that is filled with a translucent hatch
HatchBrush hb = new HatchBrush(HatchStyle.ForwardDiagonal, Color.Green, Color.FromARGB(100, Color.Yellow));
g.FillEllipse(hb, 100, 10, 100, 100);
//Example of System.Drawing.Drawing2D
//Add a circle that is filled with a Solid Green
Brush br = new SolidBrush(Color.Green);
g.FillEllipse(br, 250, 10, 150, 50);
//Without filling in the color
//An example of System.Drawing
Pen pn = new Pen(Color.Red);
g.DrawEllipse(pn,100, 150, 100, 50);
}
public static void Main()
{
Application.Run(
new Ellipse());
}
}
}

Source Code:

/* This source code is intended only for Amateur\Beginners & this Self Explanatory program*/
/* To Compile :
csc /r:System.dll /r:System.Drawing.dll /r:System.WinForms.dll
/r:Microsoft.Win32.InterOp.dll /out:Draw3D.exe Draw3D.cs
*/

//Draw3D.cs
namespace Gph
{
using System;
using System.WinForms;
using System.Drawing;
using System.Drawing.Drawing2D;
public class Draw3D : Form
{
private Brush bgBrush;
public Draw3D() //Constructor - Initialising Everything
{
SetStyle(ControlStyles.Opaque,
true);
Size =
new Size(450, 400);
Text = "Draw3D Tutorial - Jayant";
//Now create the brush we are going to use to paint the background
bgBrush = new SolidBrush(Color.Blue);
}
protected override void OnPaint(PaintEventArgs e)
{
Graphics g = e.Graphics;
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
//Fill the background using Solid brush and then apply a white wash
g.FillRectangle(bgBrush, ClientRectangle);
g.FillRectangle(
new SolidBrush(Color.FromARGB(180, Color.White)), ClientRectangle);
//Without filling in the color
//An example of System.Drawing
//The output will be slow if any one can increase the output speed then tell me how to do that
ControlPaint.DrawBorder3D(g, 50, 15, 100, 50, Border3DStyle.Adjust); //It will not be seen
g.DrawString("Adjust", this.Font, new SolidBrush(Color.Red),new RectangleF(50+50, 15+25, 100, 50));
ControlPaint.DrawBorder3D(g, 160, 15, 100, 50, Border3DStyle.Bump);
g.DrawString("Bump",
this.Font, new SolidBrush(Color.Red),new RectangleF(160+50, 15+25, 100, 50));
ControlPaint.DrawBorder3D(g, 50, 75, 100, 50, Border3DStyle.Etched);
ControlPaint.DrawBorder3D(g, 160, 75, 100, 50, Border3DStyle.Flat);
ControlPaint.DrawBorder3D(g, 50, 135, 100, 50, Border3DStyle.Raised);
ControlPaint.DrawBorder3D(g, 160, 135, 100, 50, Border3DStyle.RaisedInner);
ControlPaint.DrawBorder3D(g, 50, 195, 100, 50, Border3DStyle.RaisedOuter);
ControlPaint.DrawBorder3D(g, 160, 195, 100, 50, Border3DStyle.Sunken);
ControlPaint.DrawBorder3D(g, 50, 255, 100, 50, Border3DStyle.SunkenInner);
ControlPaint.DrawBorder3D(g, 160, 255, 100, 50, Border3DStyle.SunkenOuter);
}
public static void Main()
{
Application.Run(
new Draw3D());
}
}
}