美文网首页通往成功之路
c#教程之GDI+中三种坐标系统

c#教程之GDI+中三种坐标系统

作者: 此十八 | 来源:发表于2018-03-02 16:15 被阅读58次

 GDI+中三种坐标系统:

GDI+定义了三种坐标系统,并提供了三种坐标转换的方法Graphics.TransformPoints()

全局坐标系统。

页面(Page)坐标系统:左上角为原点,横向x轴向右为正方向,纵向y轴向下为正方向。单位为像素。这是默认的坐标系统。

设备坐标系统:可以指定特定测量单位的页面(Page)坐标系统。如果单位为像素,和页面(Page)坐标系统相同。

5.2       GDI+中常用的结构

本节介绍GDI+中常用的结构,包括:PointPointFSizeSizeFRectangleRectangleFColor等。它们都在名字空间System.Drawing中定义的。

5.4.1 结构Point和PointF

点结构有两个成员:XY,表示点的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

SizeSizeF用来表示尺寸大小,有两个成员:WidthHeight。常用构造函数如下:

public Size(int width,int height);

public SizeF(float width,float height);

5.4.3 结构Rectangle和RectangleF

结构RectangleRectangleF用来表示一个矩形,常用属性如下:

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

5.4.4 结构Color

Color结构表示颜色,结构中包含一个无符号32位数代表颜色。任何一种颜色可以用透明度(al),蓝色(bb),绿色(gg),红色(rr)合成,格式为0xalrrbbgg,其中al,bb,gg,rr为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位。透明度及颜色的使用方法的例子如下:

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等等,可用帮助察看。

相关文章

网友评论

    本文标题:c#教程之GDI+中三种坐标系统

    本文链接:https://www.haomeiwen.com/subject/aciaxftx.html