设为首页 加入收藏

TOP

图形基础(四十七)
2010-12-30 21:10:52 来源: 作者: 【 】 浏览:40233
Tags:图形 基础
星的角而中心没被填入的原因。

五角星的例子使得WINDING方式看起来比实际上更简单一些。在绘制单个的多边形时, 大多数情况下,WINDING方式会填入所有封闭的区域。但是也有例外。

在WINDING方式下要确定一个封闭区域是否被填入,您仍旧可以设想从那个无穷大的区域画线。如果假想的线穿过了奇数条边界线,区域就被填入,这和ALTERNATE方式一样。如果假想的线穿过了偶数条边界线,则区域可能被填入也可能不被填入。如果一个方向(相对於假想线)的边界线数与另一个方向的边界线数不相等,就填入区域。

例如,考虑图5-16中的物体。线上的箭头指出了画线的方向。两种方式都会填入三个封闭的L形区域,号码从1到3。号码为4和5的两个小内部区域,在ALTERNATE方式下不会被填入。但是,在WINDING方式下,号码为5的区域会被填入,因为从区域内必须穿过两条相同方向的线才能到达图形外部。号码为4的区域不会被填入,因为必须穿过两条方向相反的线。

如果您怀疑Windows没有这么聪明,那么程式5-5 ALTWIND会展示给您看。


 

图5-16 WINDING方式不能填入所有内部区域的图形
 程式5-5 ALTWIND
ALTWIND.C
/*-------------------------------------------------------------------
ALTWIND.C -- Alternate and Winding Fill Modes
(c) Charles Petzold, 1998
-------------------------------------------------------------------*/

#include <windows.h>
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
int WINAPI WinMain ( HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static T
首页 上一页 44 45 46 47 48 49 50 下一页 尾页 47/83/83
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇键盘 下一篇输出文字

评论

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