多边形的填充方式ALTERNATE与WINDING的区别

来源:互联网 发布:sass 淘宝镜像 编辑:程序博客网 时间:2024/05/19 03:26

 

 

  ALTERNATE  
  为判断一个点是否位于填充区,WINDOWS会从这个点到图形外部画一条假想的线  
  每与一条线相交,计数器就会增1,如最后一个记数是奇数,则填充这个点;如果是  
  偶数,则保持原样一变.  
   
  WINDING  
  为判断一个点是否位于填充区,WINDOWS会从这个点到图形外部画一条假想的线  
  WINDOWS会跟踪画出每个顶点(线段)的方向,这条假想的线每次穿过一个顶点时  
  而且顶点的Y方向为正,则减一个记数,如结果记数不是零,就表明该点位于填充  
  区域.  

来自<windows程序设计>:

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


 

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

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

 

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

原创粉丝点击