https://www.xin3721.com/eschool/
5.1 GDI+中三种坐标系统:
GDI+定义了三种坐标系统,并提供了三种坐标转换的方法Graphics.TransformPoints()。
l 全局坐标系统。
l 页面(Page)坐标系统:左上角为原点,横向x轴向右为正方向,纵向y轴向下为正方向。单位为像素。这是默认的坐标系统。
l 设备坐标系统:可以指定特定测量单位的页面(Page)坐标系统。如果单位为像素,和页面(Page)坐标系统相同。
5.2 GDI+中常用的结构
本节介绍GDI+中常用的结构,包括:Point、PointF、Size、SizeF、Rectangle、RectangleF、Color等。它们都在名字空间System.Drawing中定义的。
5.4.1 结构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为浮点数
5.4.2 结构Size和SizeF
Size和SizeF用来表示尺寸大小,有两个成员:Width和Height。常用构造函数如下:
public Size(int width,int height);
public SizeF(float width,float height);
5.4.3 结构Rectangle和RectangleF
结构Rectangle和RectangleF用来表示一个矩形,常用属性如下:
l Top:Rectangle结构左上角的y坐标。
l Left:Rectangle结构左上角的x坐标。
l Bottom:Rectangle结构右下角的y坐标。
l Right:Rectangle结构右下角的x坐标。
l Width:获取或设置此Rectangle结构的宽度。
l Height:获取或设置此Rectangle结构的高度。
l Size:获取或设置此Rectangle的大小。
l X:获取或设置此Rectangle结构左上角的x坐标。
l 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
5.4.4 结构Color
Color结构表示颜色,结构中包含一个无符号32位数代表颜色。任何一种颜色可以用透明度(al),蓝色(bb),绿色(gg),红色(rr)合成,格式为0xalrrbbgg,其中al,bb,gg,rr为0到255间的二进制数。常用方法如下:
l public static Color FromArgb(int alpha,int rr,int gg,int bb);
从四个分量(透明度、红色、绿色和蓝色)值创建Color结构。每个分量的值仅限于8位(小于256)。alpha值表示透明度,=0为完全透明,=255为完全不透明
l public static Color FromArgb(int rr,int gg,int bb);
从指定的8位颜色值(红色、绿色和蓝色)创建Color结构。透明度值默认为255(完全不透明)。每个分量的值仅限于8位(小于256)。红色为(255,0,0),绿色为(0,255,0),蓝色为(0,0,255)。
l public static Color FromArgb(int alpha,Color color);
从指定的Color结构创建新Color结构,使用新指定的透明度值alpha。alpha值仅限于8位。透明度及颜色的使用方法的例子如下:
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{ 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等等,可用帮助察看。