设为首页 加入收藏

TOP

图形基础(四十四)
2010-12-30 21:10:52 来源: 作者: 【 】 浏览:40236
Tags:图形 基础
, GetStockobject (NULL_BRUSH) ;

您也可以自订画刷,就如同您自订画笔一样。我们将马上谈到这个问题。

Polygon函式和多边形填入方式
 

我已经讨论过了前五个区域填入函式,Polygon是第六个画带边界框的填入图形的函式,该函式的呼叫与Polyline函式相似:

Polygon (hdc, apt, iCount) ;

其中,apt参数是POINT结构的一个阵列,iCount是点的数目。如果该阵列中的最後一个点与第一个点不同,则Windows将会再加一条线,将最後一个点与第一个点连起来(在Polyline函式中,Windows不会这么做)。PolyPolygon函式如下所示:

PolyPolygon (hdc, apt, aiCounts, iPolyCount) ;

该函式绘制多个多边形。最後一个参数给出了所画的多边形的个数。对於每个多边形,aiCounts阵列给出了多边形的端点数。apt阵列具有全部多边形的所有点。除传回值以外,PolyPolygon在功能上与下面的代码相同:

for (i = 0, iAccum = 0 ; i < iPolyCount ; i++)
{
Polygon (hdc, apt + iAccum, aiCounts[i]) ;
iAccum += aiCounts[i] ;
}

对於Polygon和PolyPolygon函式,Windows使用定义在装置内容中的目前画刷来填入这个带边界的区域。至於填入内部的方式,则取决於多边形填入方式,您可以用SetPolyFillMode函式来设定:

SetPolyFillMode (hdc, iMode) ;

内定情况下,多边形填入方式是ALTERNATE,但是您可以将它设定为WINDING。两种方式的区别参见图5-15所示。


 

图5-15 用两种多边形填入方式画出的图:ALTERNATE(左)和WINDING(右)

首先,ALTERNATE和WINDING方式之间的区别很容易察觉。对於ALTERNATE方式,您可以设想从一个无穷大的封闭区域内部的点画线,只有假想的线穿过了奇数条边界线时,才填入封闭区域。这就是填入了

首页 上一页 41 42 43 44 45 46 47 下一页 尾页 44/83/83
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇键盘 下一篇输出文字

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: