多边形裁剪(polygon-clipping)中所用到的Sutherland-Hodgman算法有缺陷,既在closeClip中没有提及多边形全体都在窗口外的情形,注意,这里不是指多边形包含窗口,而是指完全处在窗口外。此时多边形的边既没有相交的情况,也无法进行剪切,Sutherland-Hodgman算法就会出错。解决方法是在void closeClip中添加一个if条件。如果cnt不等于0,即边一定有相交,则进行算法;否则直接将cnt赋给顶点numVertex。
我正在写这个算法的实现,也发现了它对于顶点全在外边的情况失效,但是没能够改出来,不知你有没有改对。想问你要份实现程序,请联系我se7ven_high@sina.com