]请教多边形填充方式的问题

unicornwhy 2005-09-26 07:21:40
小弟这个问题出自<<windows程序设计>>(第5版) 153页

有书的兄弟可以看下

书上是说多边形有两种填充方式ALTERNATE和WINDING

对于ALTERNATE方式,你可以假想从一个无穷大的封闭区域内部的点画线,只有假想的线穿过了奇数条边界线时,才填充封闭区域.

对上面一段话小弟很难理解,望高手指点.

如果觉得很难一两句话讲清请加小弟QQ:274873277
...全文
46 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
unicornwhy 2005-09-26
谢谢楼上的详细讲解
回复
huwenyan 2005-09-26
就是任意想一条直线,从无穷远处逐渐靠近该图形,这条直线每次与该图形的某个边界相交算一次,只有计数为奇数时,ALTERNATE算法才把该区域算作图形内部。
例如一个五角星,你可以考虑它的中间区域,无穷远处的直线必须要和这个五角星的两条边相交后才能到达它的中间区域,所以根据ALTERNATE算法,五角星的中间区域定义为其图形区域以外。
这样就理解了吧,呵呵。
你可以枚举整个区域的每个象素点,用一条一条横的平行线来穿越该图形的区域,计算一条条直线与图形边界相交的次数,来给该图形着色,当然需要考虑如果图形区域和某条边界本来就是一条水平线的情况。
这是属于图形学的基础知识,你可以随便翻一本图形学的书籍,都有详细的解释。
回复
菜牛 2005-09-26
书上没有例子的话,MSDN上有;找不到的话,自己试一下。

编程是个动手的活,光靠想是没有用的。
回复
发帖
界面
创建于2007-09-28

1.5w+

社区成员

VC/MFC 界面
申请成为版主
帖子事件
创建了帖子
2005-09-26 07:21
社区公告
暂无公告