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.

 

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Información básica sobre protección de datos Ver más

  • Responsable: MTB Software de Ponent, SLU.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio. El Titular ha contratado los servicios de alojamiento web a Hostinet, SL que actúa como encargado de tratamiento.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Ver Política de cookies
Privacidad