【发布时间】:2010-10-03 22:36:14
【问题描述】:
对于复杂的多边形(即:自相交),在 Winding 或 Even-Odd 填充规则之间的选择会影响多边形的填充方式。
但是对于不相交的多边形,Winding 或 Even Odd 填充规则之间是否存在性能差异。我知道这将是特定于实现的,但哪种算法对非复杂多边形更有效。
一个后续问题是什么是这些算法的复杂性(即 O(what?) )。我想知道是否值得去掉多边形中的一些点(主要是重复的或在同一条线上的点)以提高性能。
PS:如果这很重要,我正在使用 xlib
PPS:我可以确认问题与硬件无关,因为使用不同的显卡不会改变性能
【问题讨论】:
-
您是要确定给定的 (x, y) 点是在多边形内部还是外部,还是要有效地填充多边形?当然后者可以通过反复解决前者来完成,但比这更有效。
-
正如我在标题中所说的那样。我对多边形填充感兴趣。
-
我问是因为,正如 Aaron 在他的回答中指出的那样,最好的算法甚至不使用填充规则,因为对于凸多边形,选择的规则没有区别。询问使用哪种填充规则来填充凸多边形就像询问哪种手机最适合与您旁边的人交谈。
-
我不是说我在填充凸多边形吧?我只说非自相交(即它可以是凸的或凹的)。我也在使用 XFillPolygon,它需要将填充算法指定为图形上下文的一部分
标签: performance algorithm xlib raster