与前面介绍的Point和PointF一样,Size也有两个变体。Size和SizeF的区别如下。
Size结构用于int类型。
SizeF用于float类型。
在大多数情况下,Size结构与Point结构是相同的,也有两个整型属性,分别表示水平和垂直距离。但上述两个属性的名称不是X和Y,而是Width和Height。例如,为了从点A到点B,需要水平移动20个单位,并向下垂直移动10个单位。在坐标图中使用Width和Height,可以通过如下代码创建一个Size结构来表示:
Size结构在数学上与Point结构表示的含义相同,但在概念上它使用的方式略有不同。Point用于说明实体在什么地方,而Size用于说明实体有多大。但是,Size和Point是紧密相关的,两者之间可以进行显式转换。例如下面的代码:
如果有一个矩形,其左上角的坐标是(0,0),大小是(50,50)。这个矩形的大小是(50,50),可以用一个Size实例来表示。其右下角的坐标也是(50,50),但它由一个Point实例来表示。要理解这个区别,假定在另一个位置绘制该矩形,其左上角的坐标是(10,10):(www.xing528.com)
现在其右下角的坐标是(60,60),但大小不变,仍是(50,50)。
Point和Size结构的相加运算符都已经重载了,所以可以把一个Size加到Point结构上得到另一个Point结构。例如下面的代码:
也可以从一个Point减去某个Size,得到另一个Point。并且也可以把两个Size加在一起,得到另一个Size。但是不能把一个Point加到另一个Point上,不支持+运算符的任何重载进行这样的操作。
可以在Point和Size之间实现显式的数据类型转换,例如下面的代码:
在上述数据类型转换时,s1.Width被赋予topLeft.X的值,s1.Height被赋予topLeft.Y的值,因此s1包含(10,10)。p1最终的值与topLeft的值相同。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。