Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将图形分割成一定数量的矩形_C#_Graphics - Fatal编程技术网

C# 如何将图形分割成一定数量的矩形

C# 如何将图形分割成一定数量的矩形,c#,graphics,C#,Graphics,我有一个代表字母的图形。我想检查它是否与矩形相交,但它太慢,无法使用Region.Intersect 我愿意牺牲准确性来换取速度,因此我想如果我能将字母分割成一定数量的矩形(例如,2,它覆盖了大部分字母,例如,将P分割成2个矩形,一个用于干,一个用于头),然后与这些矩形进行比较。由于我将进行1000次比较,速度会更快。将图形路径分割成若干矩形的最佳方法是什么,以最好地覆盖占用的空间(即,对于p而言,头部的矩形更宽,尾部的矩形更细) 编辑:我想你也可以反过来考虑,例如,如何获得图形路径边界内但不与

我有一个代表字母的图形。我想检查它是否与矩形相交,但它太慢,无法使用Region.Intersect 我愿意牺牲准确性来换取速度,因此我想如果我能将字母分割成一定数量的矩形(例如,2,它覆盖了大部分字母,例如,将P分割成2个矩形,一个用于干,一个用于头),然后与这些矩形进行比较。由于我将进行1000次比较,速度会更快。将图形路径分割成若干矩形的最佳方法是什么,以最好地覆盖占用的空间(即,对于p而言,头部的矩形更宽,尾部的矩形更细)


编辑:我想你也可以反过来考虑,例如,如何获得图形路径边界内但不与其重叠的两个最大矩形。

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