GDI+中三种坐标系统:
GDI+定义了三种坐标系统,并提供了三种坐标转换的方法Graphics.TransformPoints()。- 全局坐标系统。
- 页面(Page)坐标系统:左上角为原点,横向x轴向右为正方向,纵向y轴向下为正方向。单位为像素。这是默认的坐标系统。
- 设备坐标系统:可以指定特定测量单位的页面(Page)坐标系统。如果单位为像素,和页面(Page)坐标系统相同。
GDI+中常用的结构
本节介绍GDI+中常用的结构,包括:Point、PointF、Size、SizeF、Rectangle、RectangleF、Color等。它们都在名字空间System.Drawing中定义的。
- 结构Point和PointF
点结构有两个成员:X,Y,表示点的x轴和y轴的坐标。其常用构造函数如下:
- Point p1=new Point(int X,int Y);//X,Y为整数
- PointF p2=new PointF(float X,floa Y);//X,Y为浮点数
- 结构Size和SizeF
Size和SizeF用来表示尺寸大小,有两个成员:Width和Height。常用构造函数如下:
- public Size(int width,int height);
- public SizeF(float width,float height);
- 结构Rectangle和RectangleF
结构Rectangle和RectangleF用来表示一个矩形,常用属性如下:
- Top:Rectangle结构左上角的y坐标。
- Left:Rectangle结构左上角的x坐标。
- Bottom:Rectangle结构右下角的y坐标。
- Right:Rectangle结构右下角的x坐标。
- Width:获取或设置此Rectangle结构的宽度。
- Height:获取或设置此Rectangle结构的高度。
- Size:获取或设置此Rectangle的大小。
- X:获取或设置此Rectangle结构左上角的x坐标。
- Y:获取或设置此Rectangle结构左上角的y坐标。
其常用构造函数为:
- //参数为矩形左上角坐标的点结构location和代表矩形宽和高的Size结构size
Rectangle(Point location,Size size);//参数也可为PointF和SizeF
- //参数为矩形左上角x和y坐标,宽,高
Rectangle(int X,int Y,int width,int height);//X和Y也可为float
- 结构Color
Color结构表示颜色,结构中包含一个无符号32位数代表颜色。任何一种颜色可以用透明度(al),,红色(rr),绿色(gg),蓝色(bb)合成,格式为0xalrrggbb,其中al,rr,gg,bb为0到255间的二进制数。常用方法如下:
- public static Color FromArgb(int alpha,int rr,int gg,int bb);
从四个分量(透明度、红色、绿色和蓝色)值创建Color结构。每个分量的值仅限于8位(小于256)。alpha值表示透明度,=0为完全透明,=255为完全不透明
- public static Color FromArgb(int rr,int gg,int bb);
从指定的8位颜色值(红色、绿色和蓝色)创建Color结构。透明度值默认为255(完全不透明)。每个分量的值仅限于8位(小于256)。红色为(255,0,0),绿色为(0,255,0),蓝色为(0,0,255)。
- public static Color FromArgb(int alpha,Color color);
从指定的Color结构创建新Color结构,使用新指定的透明度值alpha。alpha值仅限于8位。
- 透明度及颜色的使用方法的例子如下:
{ Graphics g=e.Graphics;
SolidBrush RedBrush=new SolidBrush(Color.FromArgb(128,255,0,0));//半透明
SolidBrush GreenBrush=new SolidBrush(Color.FromArgb(128,0,255,0));SolidBrush BlueBrush=new SolidBrush(Color.FromArgb(128,0,0,255));
g.FillRectangle(RedBrush,0,0,80,80);
g.FillRectangle(GreenBrush,40,0,80,80);g.FillRectangle(BlueBrush,20,20,80,80);
}
效果如右图,可以将透明度alpha值设为255,再运行一次,看看有何不同。
C#中还预定义了一些颜色常数,例如黑色为Color.Black,红色为Color.Red等等,可用帮助察看。