首页 > 其他分享 >Unity 对多边形进行矩形分割和查找最大内接矩形

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

时间:2023-05-29 20:15:39浏览次数:32  
标签:分割 多边形 pixelCount 内接 Unity Texture2D 矩形

 

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

 

一、实现效果:

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

      

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

      

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

      

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

     

 二、包含的内容

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()

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

标签:分割,多边形,pixelCount,内接,Unity,Texture2D,矩形
From: https://www.cnblogs.com/Jason-c/p/17441537.html

相关文章

  • Unity,发布ios和Android的包,UGUI,异形屏适配问题。
    Unity,发布ios和Android的包,UGUI,异形屏适配问题。@TOC<hrstyle="border:solid;width:100px;height:1px;"color=#000000size=1">前言unity发布移动端需要做ui的适配,我们用的是UGUI,暂且提供一种我们自己的ui适配解决方案,包含异形屏的。<hrstyle="border:solid;width:100px;h......
  • 剑指 Offer II 039. 直方图最大矩形面积
    题目链接:剑指OfferII039.直方图最大矩形面积方法:单调栈解题思路以直方图中的某一条为高的最大(面积)矩形的宽度为\(r-l+1\),其中\(r\)表示在其右边第一个小于(或等于)当前高度的下标,\(l\)表示在其左边第一个小于当前高度下标。\(l\),\(r\)可以利用单调栈在\(O(1)......
  • Unity的AssetPostprocessor之Model:深入解析与实用案例 1
    UnityAssetPostprocessor模型相关函数详解在Unity中,AssetPostprocessor是一个非常有用的工具,它可以在导入资源时自动执行一些操作。在本文中,我们将重点介绍AssetPostprocessor中与模型相关的函数,并提供多个使用例子。OnPostprocessModelOnPostprocessModel是AssetPostprocessor......
  • Unity的Undo:详解解析与实用案例
    UnityUndo详解在Unity中,Undo是一个非常重要的功能,它可以让开发者在编辑器中进行操作时,随时撤销之前的操作,从而避免不必要的错误。本文将详细介绍UnityUndo实现原理和使用方法,并提供多个使用例子,帮助开发者更好地理解和应用该功能。实现原理UnityUndo的实现原理是通过记录每个......
  • Unity的Console的控制类LogEntries:深入解析与实用案例
    使用UnityConsole窗口的LogEntries私有类实现自定义日志系统在Unity开发过程中,我们经常需要使用Console窗口来查看程序运行时的日志信息。Unity内置的日志系统提供了基本的日志功能,但有时我们需要更多的自定义选项。本文将介绍如何使用UnityConsole窗口的LogEntries私有类来实现......
  • Unity的Undo:详解解析与实用案例
    UnityUndo详解在Unity中,Undo是一个非常重要的功能,它可以让开发者在编辑器中进行操作时,随时撤销之前的操作,从而避免不必要的错误。本文将详细介绍UnityUndo实现原理和使用方法,并提供多个使用例子,帮助开发者更好地理解和应用该功能。实现原理UnityUndo的实现原理是通过记录每个......
  • unity学习日志5(麦扣老师3DRPG项目学习)
    设计模式单例模式(泛型单例)作用:提高代码复用率,增加代码可读性//实现泛型单例,并对T进行约束,规定只有各类manager使用单例模式publicclassSingleton<T>:MonoBehaviourwhereT:Singleton<T>{privatestaticTinstance;//通过属性来访问直接获取私有的静......
  • Unity的IPostGenerateGradleAndroidProject:深入解析与实用案例
    UnityIPostGenerateGradleAndroidProjectUnity是一款流行的跨平台游戏引擎,它支持多种平台,包括Android。在Unity中,我们可以使用IPostGenerateGradleAndroidProject接口来自定义Gradle构建过程。本文将介绍如何使用IPostGenerateGradleAndroidProject接口,并提供三个使用例子。IPos......
  • Unity的UnityStats: 属性详解与实用案例
    UnityStats属性详解UnityStats是Unity引擎提供的一个用于监测游戏性能的工具,它提供了一系列的属性值,可以帮助开发者解游戏的运行情况,从而进行优化。本文将详细介绍UnityStats的每个属性值,并提供多个使用例子帮助开发者更好地使用UnityStats。帧率相关属性UnityStats.fps......
  • Unity的IGenerateNativePluginsForAssemblies:深入解析与实用案例
    UnityIGenerateNativePluginsForAssembliesUnity是一款非常流行的游戏引擎,它支持多种平台,包括Windows、Mac、Linux、Android、iOS等。在Unity中,我们可以使用C#编写游逻辑,但是有些时候我们需要使用一些原生的代码来实现一些高性能的功能,比如图像处理、音频等。这时候,我们就需要使......