Unity 对多边形或图片进行矩形分割和查找最大内接矩形

 

花了点时间实现了对任意多边形进行矩形分割的功能,有需要的小伙伴可以点击这里查看源码

 

一、实现效果:

1、对图片里的内容进行矩形分割

      

 2、对多边形顶点数据进行矩形分割

      

3、查找图片里内容的最大内接矩形

      

4、查找多边形顶点数据内的最大内接矩形

     

5、支持处理带“洞”的多边形

     

6、注意不支持相交的情况,相交认为是洞

     

 

 二、包含的内容

1、核心代码只有一个C#类,方便集成,不依赖任何平台和Unity版本

2、完整的调用示例场景

3、完善的注释,核心逻辑都有注释,方便理解

4、接口调用简单,只需要两步:通过new实例化这个类,然后调用接口获得返回值

5、稳定,测试过1000种不同的场景

 三、API 参考

1、int ignoreSize

表示允许忽略的矩形的值,小于该值的矩形将会被忽略

2、List<UnityEngine.Rect> SplitRectangles(List<Vector2> points, int pixelCount)

有序的点,围成的多边形,内部拆分成矩形;pixelCount:像素数量,值越大找到的矩形越精确,越消耗性能

3、List<UnityEngine.Rect> SplitRectangles(Texture2D image)

将图片内部拆分成矩形

4、UnityEngine.Rect LargestInteriorRectangle(List<Vector2> points, int pixelCount)

有序的点,围成的多边形,内部的最大内接矩形;pixelCount:像素数量,值越大找到的矩形越精确,越消耗性能

 5、UnityEngine.Rect LargestInteriorRectangle(Texture2D image)

查找图片内容中的最大内接矩形

6、Texture2D Test_ImageResultToImage(Texture2D texture)

将图片分割的结果保存成图片,很耗时,建议只在测试结果是否正确的时候用

7、Texture2D Test_PolygonResultToImage()

将多边形分割的结果保存成图片,很耗时,建议只在测试结果是否正确的时候用

posted on 2023-05-29 19:58  Jason_c  阅读(345)  评论(0编辑  收藏  举报