0

我有一个代表字母的 GraphicsPath。我想检查它是否与 RectangleF 相交,但使用 Region.Intersect 太慢了它覆盖了大部分字母,例如将 P 分成 2 个矩形,一个用于词干,一个用于头部),然后与这些矩形进行比较。因为我将进行 1000 次比较,所以它会更快。将图形路径分割成多个矩形以最好地覆盖占用空间的最佳方法是什么(即对于 ap,它的头部较宽,尾部较长且较细)。

编辑:我想你也可以反过来考虑它,即我怎样才能得到例如 2 个最大的矩形,它们在图形路径的范围内但不与它重叠。

4

1 回答 1

0

中间步骤是 Region(GraphicsPath) 构造函数和 Region.GetRegionScans() 方法。通过将 Region 分解为矩形一次,对返回的 RectangleF[] 进行数千次测试,这应该会更快。您可以通过传递一个缩小区域的矩阵来减少矩形的数量。

于 2012-09-20T13:48:17.463 回答