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.