我最近几天搜索并研究了互联网,为我的问题寻找合适的方法。
问题:
将凹面多边形夹在无方向的无限线上(实际上是一个多边形对着3d中的一个平面,但问题类似于我认为)。目前我使用Sutherland-Hodgman,但生成的多边形有时包含由退化边缘创建的零区域部分,并且它也不支持包含孔的多边形。
我发现可以解决我的问题的最好的算法是Weiler-Atherton算法,但是它用于剪切具有顺时针边缘的多边形,并且我所拥有的是无限线(在3d平面中)缺少方向信息。 / p>
问题:
是否有算法剪裁适合我需要的凹多边形,或者有人建议如何修改Weiler-Atherton算法以适应这种情况?有些网页表明它可以推广以支持更多案例,但我无法弄明白。
//此致 荣研
答案 0 :(得分:3)
在Graphic Gems V中找到了一个合适的算法来解决我的问题。如果有人遇到同样的问题,这就是参考:
Glassner,A。,''剪切凹面多边形',在Graphics Gems V,A.Paeth编辑,Academic Press,Cambridge,1995
答案 1 :(得分:1)
您可以使用多边形裁剪器*通过将线条转换为裁剪多边形来解决此问题。假设您没有在近水平面上进行裁剪,只需确保裁剪多边形的临界(裁剪)边缘比主体多边形的垂直尺寸稍大(即边缘在主题多边形的上方和下方延伸)。如果在近水平面上进行削波,请确保临界边缘比主体稍宽。
*例如Clipper - http://sourceforge.net/projects/polyclipping/
披露:我是Clipper的作者,因此存在个人偏见的可能性。