GDI图形编程(6)

 

3.2.7  绘制矩形

矩形是另一种简单的GDI图形结构,我们可以照搬多边形的函数结构,使用DrawRectangle函数来绘制矩形轮廓或者使用FillRectangle来填充矩形。

可以通过两种方法来对矩形的位置及大小进行设置:传递一个填充了生成矩形所需要的信息的Rectangle结构;或指定矩形的x坐标、y坐标、width值以及height值。

注意:

当为这些方法指定了矩形的第一个角时,就不需要再指定其对角的坐标了。只需要指定矩形的宽度与高度。如果有对角的坐标数据,那么矩形的宽度与高度可以通过这些公式来得到:width = (x2 – x1) ,height = (y2 – y1)。

注意,在使用DrawRectangle方法时,矩形的宽度和高度包含两个边界:如果您指定了一个矩形,其y坐标为10,height为20,那么该矩形的实际高度为21像素(包含了10~30之间的所有点,10与30两个点也包含其中)。

在使用FillRectangle进行矩形填充时,矩形的右边线与底边线会排除在外,结果会填充一个高度为20像素的矩形(包含了10~29之间的所有像素,10与29两个点也包含其中)。

矩形的宽度与高度值可以为负,也可以为0(会显示为一条水平线或垂直的线)。注意,如果两个尺寸都为0的话,那么不会绘制任何东西;您可以从第3.2.9节中获得更多信息。

GDI没有专门提供绘制正方形的方法,正方形只是宽度与高度相同的矩形。使用这些方法也无法绘制旋转了的矩形(即矩形的水平边与屏幕的侧边不垂直),不过这可以通过前面所讨论的绘制多边形的方法来实现。

3.2.8  绘制椭圆

椭圆与圆的创建方式同矩形非常相似,它们通过DrawEllipse与FillEllipse方法来创建,并且要传递给这些方法的参数也与矩形函数中的一致。创建好的椭圆可以精确地包含在矩形的边界中,如图3-6所示。

与正方形一样,在绘制圆时,只需要为宽度和高度设置相同的值即可。没有函数能够绘制旋转椭圆;这样的椭圆可以使用包含了很多小线段的多边形通过拟合椭圆的形状来生成,也可以通过自己编写算法来计算椭圆所涵盖的像素来生成,但GDI本身不会为我们完成该功能。

注:以上内容图略,图片内容请参考原图书

读书导航