为了编写图形应用程序,需要很好地理解绘制表面和坐标系统的相关知识
 绘制表面
 所有的绘图应用程序都由三个公共组件组成: 一个画布,一个画笔,一个过程
 画布是绘制对象的地方。例如在Windows应用程序中,一个Form就是一个画布
 画笔或钢笔表示在画布上所绘制的对象的纹理,颜色和宽度等
 过程描述了在画布上绘制对象的方式
 
 每个绘制表面都有四个公共属性:宽度,高度,分辨率和颜色深度
 其中分辨率属性是一个衡量图形对象或图像的输出质量的参数,它的单位是每英寸点数dpi。
 绘制表面的颜色深度是表示每个像素所使用的颜色数
 GDI+使用Color结构体来表示颜色。它有四个分量:Alpha,红,绿,蓝。每个分量都有256(2的8次方)种颜色组合。Alpha决定了颜色的透明度
 
 GDI+提供了三种类型的表面:窗体,打印机和位图
 窗体表面:当编写在窗体上进行绘制Windows应用程序时,窗体将作为绘制表面度且支持所有绘制表面所需的属性
 打印机表面:当应用程序进行打印时,打印机将作为绘制表面
 位图表面:当在内存中创建图像并将其保存为位图时,位图将作为绘制表面。
 
 坐标系统
 默认的GDI+坐标系统从屏幕左上角的处(x=0,y=0)开始
 GDI+提供了三种类型的坐标系统:全局坐标,页面坐标和设备坐标
 全局坐标->全局变换->页面坐标->页面变换->设备坐标
 
 如何选择绘制表面?从哪里获得Graphics对象,则就是绘制表面。
 在绘图时,关键是Graphics对象的获取。有多种方式。
 1,使用窗体的paint事件
 可以使用窗体的paint事件的PaintEventArgs属性来获取一个与窗体相关联的Graphics对象
 2,重载OnPaint方法
 这种方式也是使用PaintEventArgs属性来得到Graphics对象
 3,使用其它方法
 所有控件都有的方法,CreatGraphics()返回一个与这个控件相关联的Graphics对象
 还可以使用Graphics类的静态方法来获得Graphics对象,例如:FromImage(),FromHwnd()等静态方法,它们分别从图像,窗口句柄得到Graphics对象