Entiendo que si ya tienes la estructura que alberga una pareja de puntos, y la función que calcula la distancia entre dos puntos, sólo tienes que implementar una función que sume todas las distancias de todas las parejas de puntos (los lados).
No parece muy problemático.
Sería algo como esto:
Una estructura para albergar un punto
una estructura para albergar un lado (o arista)
Código C++:
Ver originalstruct arista
{
punto vertices[2]
float distancia (vertice[0],vertice[1]);//implementar la función
};
una estructura para albergar el polígono, pongamos un cuadrado
Código C++:
Ver originalstruct rectangulo
{
arista aristas[4];
float calcularperimetro()
{float perimetro=0;
for (int i=0;i<4;i++)
{
perimetro+=aristas[i].distancia;
}
return perimetro;
}
Bueno, algo así. Obviamente con sus constructores y demás donde hagan falta.
Estos ejercicios están bien para ir construyendo objetos más complejos de forma progresiva, y hacer uso de los métodos de los objetos base para conseguir de forma sencilla y lógica implementar métodos en los objetos siguientes. Fíjate que para obtener el perímetro sólo has de sumar las distancias de las aristas.
Con dos
float construyes un objeto
punto.
Con dos
punto construyes un objeto
arista
Con n
arista (en este caso 4) construyes un objeto cuadrado o rectángulo.
Todo esto se puede mejorar para que la estructura que alberga un cuadrado pueda funcionar para cualquier tipo de polígono y obviamente para muchas mas sutilezas.
Bueno, espero que esto te sirva.