C# 如何将图形分割成一定数量的矩形
我有一个代表字母的图形。我想检查它是否与矩形相交,但它太慢,无法使用Region.Intersect 我愿意牺牲准确性来换取速度,因此我想如果我能将字母分割成一定数量的矩形(例如,2,它覆盖了大部分字母,例如,将P分割成2个矩形,一个用于干,一个用于头),然后与这些矩形进行比较。由于我将进行1000次比较,速度会更快。将图形路径分割成若干矩形的最佳方法是什么,以最好地覆盖占用的空间(即,对于p而言,头部的矩形更宽,尾部的矩形更细)C# 如何将图形分割成一定数量的矩形,c#,graphics,C#,Graphics,我有一个代表字母的图形。我想检查它是否与矩形相交,但它太慢,无法使用Region.Intersect 我愿意牺牲准确性来换取速度,因此我想如果我能将字母分割成一定数量的矩形(例如,2,它覆盖了大部分字母,例如,将P分割成2个矩形,一个用于干,一个用于头),然后与这些矩形进行比较。由于我将进行1000次比较,速度会更快。将图形路径分割成若干矩形的最佳方法是什么,以最好地覆盖占用的空间(即,对于p而言,头部的矩形更宽,尾部的矩形更细) 编辑:我想你也可以反过来考虑,例如,如何获得图形路径边界内但不与
编辑:我想你也可以反过来考虑,例如,如何获得图形路径边界内但不与其重叠的两个最大矩形。中间步骤是区域(GraphicsPath)构造函数和区域.GetRegionScans()方法。通过将区域分解为矩形一次,并对返回的矩形进行数千次测试,应该可以更快。通过传递缩小区域的矩阵,可以减少矩形的数量