Calcular el perímetro de un polígono

A continuación una pequeña función que te ayudará a calcular la longitud del perímetro de cualquier polígono a partir de la lista de puntos (Punto3D ya conocido).

/// <summary>
        /// Obtiene la longitud del perímetro de un polígono
        /// </summary>
        /// <param name=”Coords“>Lista de vértices del polígono</param>
        /// <returns>Longitud del perímetro calculada</returns>
        public static double GetPerimeter(List<Point3D> Coords)
        {
            double perim = 0;
            int i;
            if (Coords.Count > 0)
            {
                for (i = 0; i <= Coords.Count – 2; i++)
                {
                    perim += Coords[i].DistanceTo(Coords[i + 1]);
                }
                i = Coords.Count – 1;
                perim += Coords[i].DistanceTo(Coords[0]);
            }
            return perim;
        }

Para ponerlo a prueba puedes escribir un método parecido al siguiente:

 private void perímetroDePolígonoToolStripMenuItem_Click(object sender, EventArgs e)

        {

            List<Point3D> pts = new List<Point3D>();

            pts.Add(new Point3D(10, 5, 0));

            pts.Add(new Point3D(10, 10, 0));

            pts.Add(new Point3D(12.5, 10, 0));

            pts.Add(new Point3D(15, 12.5, 0));

            pts.Add(new Point3D(17.5, 12.5, 0));

            pts.Add(new Point3D(17.5, 5, 0));

            pts.Add(new Point3D(15, 5, 0));

            pts.Add(new Point3D(15, 7.5, 0));

            pts.Add(new Point3D(12.5, 5, 0));

            MessageBox.Show(“Perímetro obtenido: “ + MyClase.GetPerimeter(pts).ToString(), “Text”,

                            MessageBoxButtons.OK, MessageBoxIcon.Information);

        }

Si todo va bien deberías recibir un resultado parecido al siguiente para estas coordenadas:

Puedes hacer la prueba dibujando una polilínea en AutoCAD o BricsCAD y ver sus propiedades.

Ponlo a prueba, piensa en cómo mejorarlo y comparte con nosotros tus progresos.

Scroll al inicio
Abrir chat
1
Hola
¿En qué podemos ayudarte?