Unity中计算闭合路径内部的所有点位
Unity中计算闭合路径内部的所有点位
- 介绍
- 射线投射法 (Ray Casting)
- 三角剖分法 (Triangulation)
- 网格填充法 (Flood Fill)
- 使用Unity的Collider2D
- 扫描线算法实现
- 总结
介绍
最近在做一个老街机游戏《天蚕变》,因为有很多的算法要处理,所以这里我也对这个游戏的算法进行了一些剖析,今天记录一下计算闭合路径的矩形区域以及闭合路径内部的所有点。方法其实有很多下面我都会列举一下
射线投射法 (Ray Casting)
这个方法适用在顶点数在几十到几百性能比较好
多边形不需要频繁更新的2D场景
分辨率不能太高,点越多会造成卡顿
时间复杂度: O(n*m), 其中n是网格点的数量(由边界大小和分辨率决定),m是多边形顶点数
空间复杂度: O(k), 其中k是内部点的数量
using UnityEngine;
using System.Collections