GDI+与图形编程研究

GDI+的基本概念

GDI+的常用对象,包括Graphics、Font、Brush、Pen等对象的创建和使用

常用图形的绘制

Color结构、Point结构和Rectangle结构

1.GDI+的概念

GDI+是GDI(Graphics Device Interface,图形设备接口)的改进产品。

2.GDI+的绘图命名空间

用户所使有的GDI+函数都保存在System.Drawing.d11程序集中。其中包括System.Drawing、System.Drawing.Text、System.Drawing.Printing、System.Drawing.Imaging、System.Drawing.Drawing2D和System.Drawing.Design等命名空间。

Graphics对象

(1)利用窗体或控件的Paint事件的参数PaintEventArgs创建Graphics对象。

(2)使用窗体或控件的CreateGraphics方法

Graphics  g=this.CreateGraphics();

(3)使用Image的派生类创建Graphics对象。使用Image的任何派生类均可以生成相应的Graphics对象,这种方法一般适用于在C#中对图像进行处理的场合。

Bitmap b=new Bitmap("Mybmp.bmp");

Graphics g=Graphics.FromImage(b);

Pen对象

Pen类的构造函数有四种,使用方法如下。

(1)创建某一颜色的Pen对象:public Pen(Color)

(2)创建某一刷子样式的Pen对象:public Pen(Brush)

(3)创建某—刷子样式并具有相应宽度的Pen对象:public Pen(Brush,float)

(4)创建某一颜色和相应宽度的Pen对象:public Pen(Color,float)

Pen对象的常用属性

(1)Alignment属性:用来获取或设置此Pen对象的对齐方式。

(2)Color属性:用来获取或设置此Pen对象的颜色。

(3)Width属性:用来获取或设置此Pen对象的宽度。

(4)DashStyle属性:用来获取或设置通过此Pen对象绘制的虚线的样式。

(5)DashCap属性:用来指定虚线两端风格,是一个DashCap枚举型的值。

(6)StartCap属性:用来获取或设置通过此Pen对象绘制的直线起点的帽样式。

(7)EndCap属性:用来获取或设置通过此Pen对象绘制的直线终点的帽样式。

(8)PenType属性:用来获取用此Pen对象绘制的直线的样式。

Font对象

Brush对象

1.SolidBrush画刷

SolidBrush类用来定义单一颜色的Brush,其构造函数如下。

public SolidBrush(Color.Color)

2.HatchBrush画刷

HatchBrush类的构造函数有两种,分别如下:

[格式1]:public HatchBrush(HatchStyle, Color);

[格式2]:public HatchBrush(HatchStyle, Color, Color); HatchBrush画刷具有三个属性,分别如下:

(1)BackgroundColor属性:获取此HatchBrush 对象的背景色。

(2)ForegroundColor属性:获取此HatchBrush 对象的前景色。

(3)HatchStyle属性:获取此HatchBrush 对象的阴影样式。

3.LinearGradientBrush画刷

LinearGradientBrush类的构造函数有多种格式,最常用的格式如下。

public LinearGradientBrush(Point1, Point2, Color1, Color2);

常用图形的绘制方法

1.画直线

[格式1]:public void DrawLine(Pen pen,int x1,int y1,int x2,int y2);

[格式2]:public void DrawLine(Pen pen,Point pt1,Point pt2);

2.画椭圆

[格式1]:public void DrawEllipse( Pen pen, Rectangle rect);

[格式2]:public void DrawEllipse(Pen pen,int x,int y,int width, int height);

3.绘制圆弧

[格式1]:public void DrawArc(Pen pen,Rectangle rect,float startAngle,float sweepAngle);

[格式2]:public void DrawArc(Pen pen,int x,int y,int width,int height,int startAngle,int sweepAngle);

4.画扇形图

使用Graphics对象的DrawPie方法可以绘制扇形图,所谓扇形图其实就是把一段圆弧的两个端点与圆心相连。DrawPie方法的格式与DrawArc方法基本一致。

5.画矩形

[格式1]: public void DrawRectangle( Pen pen, Rectangle rect);

[格式2]:public void DrawRectangle(Pen pen,int x,int y,int width,int height);

6.画Bezier曲线

[格式1]:public void DrawBezier(Pen pen,Point pt1,Point pt2,Point pt3,Point pt4);

[格式2]:public void DrawBezier(Pen pen,float x1,float y1,float x2,float y2,float x3,float y3,float x4,float y4);

7.画多边形

[格式1]:public void DrawPolygon(Pen pen,  Point[] points);

[格式2]:public void DrawPolygon(Pen pen, PointF[] points);

8.绘制闭合曲线

[格式1]:public void DrawClosedCurve(Pen pen,Point[] points);

[格式2]:public void DrawClosedCurve(Pen pen,Point[] points,float tension,FillMode fillmode);

9.绘制非闭合曲线

[格式]:public void DrawCurve( Pen pen,Point[] points);

10.绘制路径

[格式]:public void DrawPath(Pen pen,GraphicsPath path);

11.填充椭圆

[格式1]:public void FillEllipse(Brush brush, Rectangle rect);

[格式2]:public void DrawEllipse(Brush brush,int x,int y,int width, int height);

12.填充矩形

[格式1]: public void FillRectangle( Brush brush, Rectangle rect);

[格式2]:public void FillRectangle(Brush brush,int x,int y,int width,int height);

13.填充饼图

[格式1]:public void FillPie(Brush brush,Rectangle rect,float startAngle,float sweepAngle)

[格式2]:public void FillPie(Brush brush,int x,int y,int width,int height,int startAngle,int sweepAngle);

GDI+与图形编程研究

时间: 2024-11-02 05:14:59

GDI+与图形编程研究的相关文章

iOS 图形编程总结

本文转载至 http://www.cocoachina.com/ios/20141104/10124.html MetaliOS开发Sprite Kit图形编程 iOS实现图形编程可以使用三种API(UIKIT.Core Graphics.OpenGL ES及GLKit). 这些api包含的绘制操作都在一个图形环境中进行绘制.一个图形环境包含绘制参数和所有的绘制需要的设备特定信息,包括屏幕图形环境.offscreen 位图环境和PDF图形环境,用来在屏幕表面.一个位图或一个pdf文件中进行图形和

(转载)3D 图形编程的数学基础(2) 矩阵及其运算

原文地址:http://blog.csdn.net/vagrxie/article/details/4974985 版权声明:本作品由九天雁翎创作,采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可.http://www.jtianling.com 目录(?)[+] write by 九天雁翎(JTianLing) -- blog.csdn.NET/vagrxie 讨论新闻组及文件 Technorati 标签: 3D,matrix,irrlich,D3D,DirectX,math 矩阵

Wince 中的图形编程

图形编程程序当中,笔者主要要和大家讨论的是画刷的创建和使用以及绘图函数,比如2D图像的绘制等等. *画刷的定义: HBRUSH hBrush; *画刷的类型: 1. 系统内置画刷:GetStockObject() 2. 单色画刷:CreateSolidBrush(): 3. 位图画刷:CreatePatternBrush():    *位图画刷的创建步骤: 1.在资源文件中导入位图 2.获得位图句柄 3.创建位图画刷 *基本图形绘制函数: *线条绘制函数: MoveToEx()/    Line

图形编程(数值微分DDA)

#include <iostream> #include <time.h> #include <stdio.h> #include <stdlib.h> using namespace std; int searchXY(int y,int x,int H,int W) { return W*y+x; } int Min(int a,int b) { return a < b? a :b; } int Max(int a,int b) { return

(转载)3D 图形编程的数学基础(3) 矩阵基本变换

原文地址:http://blog.csdn.net/vagrxie/article/details/5016143 版权声明:本作品由九天雁翎创作,采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可.http://www.jtianling.com 目录(?)[+] write by 九天雁翎(JTianLing) -- blog.csdn.NET/vagrxie 讨论新闻组及文件 这里开始,是真正的与3D图形编程相关的知识了,前两节只能算是纯数学. 平移矩阵 要想将向量(x, y,

[ios]iOS 图形编程总结

转自:http://www.cocoachina.com/ios/20141104/10124.html iOS实现图形编程可以使用三种API(UIKIT.Core Graphics.OpenGL ES及GLKit). 这些api包含的绘制操作都在一个图形环境中进行绘制.一个图形环境包含绘制参数和所有的绘制需要的设备特定信息,包括屏幕图形环境.offscreen 位图环境和PDF图形环境,用来在屏幕表面.一个位图或一个pdf文件中进行图形和图像绘制.在屏幕图形环境中进行的绘制限定于在一个UIVi

Java 图形编程 二:布局管理器之顺序布局

package second; import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class Layout { private Frame f; private Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b10;//声明10个button //构造函数,实例化button 1 - 10 Layout(){ b1 = new B

Java 图形编程 二:布局管理器之边界布局

package second; import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class BorderLayoutDemo { private Frame fb; private Button b1,b2,b3,b4,b5;//声明5个button //构造函数,实例化button 1 - 5 BorderLayoutDemo(){ b1 = ne

Java 图形编程 一:入门

package second; import java.awt.Color; import java.awt.Frame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.*; public class Window extends Frame { public Window(String string){ super(string);//调用父类构造方法 } publ