Esempio n. 1
0
        /// <summary>
        /// 多角形の面積を取得する
        /// </summary>
        public float GetArea()
        {
            float crossSum = 0f;                //外積の合計
            int   size     = vertices.Count;

            //頂点を巡回
            for (int i = 0; i < size; ++i)
            {
                Vector2 v1 = vertices[i];
                Vector2 v2 = vertices[(i + 1) % size];
                //外積を計算
                float cross = GeomUtil.Cross(v1, v2);
                //外積を加算
                crossSum += cross;
            }
            return(Mathf.Abs(crossSum / 2f));
        }