C# 二维与三维计算多边形面积的方法

x33g5p2x  于2022-06-08 转载在 其他  
字(0.6k)|赞(0)|评价(0)|浏览(459)

1、二维情况下,计算多边形面积

  1. internal static float GetArea(List<Vector2> points)
  2. {
  3. float area2 = 0;
  4. for (int numPoint = 0; numPoint < points.Count - 1; numPoint++)
  5. {
  6. MyPoint point = points[numPoint];
  7. MyPoint nextPoint = points[numPoint + 1];
  8. area2 += point.x * nextPoint.y - point.y * nextPoint.x;
  9. }
  10. return area2 / 2f;
  11. }

2、三维情况下,计算多边形面积

  1. internal static float GetArea3D(List<Vector3> points, Vector3 normal)
  2. {
  3. Vector3 vector = Vector3.zero;
  4. for (int numPoint = 0; numPoint < points.Count - 1; numPoint++)
  5. {
  6. var point = points[numPoint];
  7. var nextPoint = points[numPoint + 1];
  8. vector += Vector3.Cross(point, nextPoint);
  9. }
  10. return (1f / 2f) * Math.Abs(Vector3.Dot(vector, normal));
  11. }

相关文章