.NET中的GDI+

时间:2023-03-09 08:20:22
.NET中的GDI+

GDI:Graphics Device Interface.

System. Windows. Shapes 命名空间:

Ellipse

绘制一个椭圆。

Line

在两个点之间绘制一条直线。

Path

绘制一系列相互连接的直线和曲线。 直线和曲线维度通过Data属性声明,并且可以使用 Path 特定的 mini-language 或使用对象模型来指定。

Polygon

绘制一个多边形,它是形成闭合形状的一系列相互连接的直接。

Polyline

绘制一系列相互连接的直线。

Rectangle

绘制一个矩形形状,该形状可以具有笔画和填充。

Shape

为 Ellipse、Polygon 和 Rectangle之类的形状元素提供基类。

来自 <https://msdn.microsoft.com/zh-cn/library/system.windows.shapes(v=vs.95).aspx>

实例代码:

Graphics g = this.CreateGraphics(); 

Pen pen = new Pen(Color.Red, ); //笔画
Brush brush = new SolidBrush(Color.Blue); //用来填充
Font font = new Font("宋体", );//文字 //绘制一个矩形形状,该形状可以具有笔画和填充。
Rectangle rect = new Rectangle(, , , ); g.DrawLine(pen, , , , ); //两个点的坐标(上、左;上、左)
g.DrawRectangle(pen, rect);
g.DrawString("GDI+", font, brush, , );//文字起始位置
brush.Dispose(); font.Dispose(); pen.Dispose();
g.Dispose(); //释放资源

.net中GDI的封装:

.NET中的GDI+

.NET中的GDI+

Color的静态方法:

FromArgb: 通过三原色构建Color对象;

FromKnownColor:通过已知颜色构建Color对象;

FromName:通过颜色名称来构建Color对象。

Color temp1 = Color.Blue;

Color temp2 = Color.FromArgb(,,);

Color temp3 = Color.FromName("blue");

Size和SizeF:

表示绘制平面上的一个尺寸,一个为整数,一个为浮点数;

Size sz1 = new Size(,);

属性:Width: 表示宽度值,Height: 表示高度值;

重载了加减、比较、赋值操作:

 Size sz1 = new Size(,);

 Size sz2 = sz1;            

 Size sz3 = sz1 + sz2;

Point和PointF:

表示绘制平面上点的坐标,一个为整数,另外一个为浮点数;

Point pt1 = new Point(,);

重载了加减、比较、赋值操作;

Rectangle和RectangleF:

绘制平面上的一个矩形区域

.NET中的GDI+

GDI绘制函数图:

void MainFormPaint(object sender, PaintEventArgs e)
{
//垂直坐标
Graphics g = e.Graphics;
PointF [] cur1 = new PointF[ ]; //生成所需要的点 //函数
for( int i=; i<cur1.Length; i++ )
{
double x = (double)i/;
double y = Math.Sin(x) * + Math.Cos( *x );
cur1[i] = new PointF( (float)i, (float)( y*+ ));
}
//将点练成线
g.DrawLines( Pens.Blue, cur1 ); //极坐标
PointF [] cur2 = new PointF[ ];//生成所需要的点 //函数
for( int i=; i<cur2.Length; i++ )
{
double theta = Math.PI/ * i;
double r = Math.Cos( theta * );
cur2[i] = new PointF(
(float)( r * Math.Cos( theta ) * + ),
(float)( r * Math.Sin( theta ) * + ) );
}
g.DrawLines( Pens.Blue, cur2 );
}

效果:

.NET中的GDI+