/// <summary> /// 入力された頂点群をポリゴンとし、その外部にある三角形を取り除く /// Triangulate関数の後に呼び出すこと。 /// </summary> void RemoveExternalTriangles(List <Vector2> points) { ForeachTriangles((Triangle2D t) => { if (!Utils2D.Pnpoly(points, t.g)) { tempRemoving.Add(t); } }); SolveTempTriangles(); }
/// <summary> /// 引数の座標群から全体を包括する三角形を作成し、返す。 /// </summary> /// <returns>The huge triangle.</returns> /// <param name="points">Points.</param> Triangle2D GetHugeTriangle(List <Vector2> points) { Vector2 min, max; Utils2D.ComputeBound(points, out min, out max); Vector2 center = (min + max) * 0.5f; float radius = (max - min).magnitude * 0.5f + 0.1f; // minとmaxの差が0になるのを回避するための"0.1f" float scale = Mathf.Sqrt(3f); return(new Triangle2D( center + new Vector2(radius * scale, radius), center + new Vector2(-radius * scale, radius), center + new Vector2(0f, -radius * 2f) )); }
/// <summary> /// 頂点カラーを指定して三角形情報からメッシュに変換する。 /// </summary> /// <returns>The mesh.</returns> /// <param name="color">Color.</param> public Mesh ToMesh(Color color) { return(Utils2D.TrianglesToMesh(new List <Triangle2D>(triangles), color)); }