关于windows api 编程的多边形填充模式:

hearty 2000-02-28 05:09:00
加精
我在学SetPolyFillMode() 函数时,搞不清在 ALTRENATE 和 WINDING 两种模式下什么时候填充多边形.如一个五角星.谢谢!
...全文
245 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
redoak2000 2000-02-29
  • 打赏
  • 举报
回复
如其名字所示,这个函数设置多边形的填充方式,可以以在假想的空间中画线的方法来区别二种方式。
**此处假想线是指在一个假想的无穷大的封闭区域内部的任意方向的线。
**此处线的序号以0为开始。
1.ALTERNATE(不是你写的ALTRENTE,笔误?)本意是 ‘交替’的意思.
使用ALTERNATE方式时,只有假想线穿过了奇数边界线时才填充这一条奇数线(1,3,5,...)同其前一条偶数线(0,2,4,...)之间的封闭区域。对五角星来说,这种方式填充了五个角,而中心的正五边形区域没有被填充。
2.WINDING 本意是 ‘迂回’的意思.
使用WINDING方式时, 当假想线穿过了奇数边界时填充这一条奇数线同其前一条偶数线之间的封闭区域,这一点同ALTERNATE方式一样。当假想线穿过了偶数条边界线时该偶数线与其前的奇数线之间的封闭区域填充与否决定方式如下:
如果沿一条假想线方向穿过的边界线数与另一个方向的一条假想线穿过的边界线数不等则填充这一区域反之则不。对五角星来说,这种方式填充了五角形的所有区域。

要理解其工作方式必须仔细分析,多想一想才行。
详细的可以参考:Windows程序设计(第5版)Charles Petzold 北京大学出版社(1999)

Jackzhu 2000-02-29
  • 打赏
  • 举报
回复
这些模式只在填充复杂的、互相覆盖的多边形时才有所不同。
snakebird 2000-02-28
  • 打赏
  • 举报
回复
WINDING 模式

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧