Como sacar el perímetro de un poligono irregular mediante coordenadas | Sololearn: Learn to code for FREE!
New course! Every coder should learn Generative AI!
Try a free lesson
0

Como sacar el perímetro de un poligono irregular mediante coordenadas

Como sacar el perímetro de un poligono irregular mediante coordenadas

11th May 2020, 9:18 PM
Jose Rodolfo Anguiano Antonio
4 Answers
0
Sumas la distancia entre cada punto, en secuencia; es decir podrías usar un array para guardar cada coordenada (se infiere que las introducen en orden) y después con un foreach (para cada elemento del array) sacas la distancia con el siguiente elemento (existe fórmula matematica para sacar la distancia entre dos puntos ) , obvio el último con el primero, y para terminar sumas todo Apartir de aquí lo resolveré con c# pero puedes usar lo que escribí antes para guiarte. Entonces: Primero hay que saber cuantos puntos tiene el polígono : Console.WriteLine ("ingrese el número de puntos que tiene el polígono " ) ; int nPuntos = Convert.ToInt32(Console.ReadLine()) ; Declaramos el array(por el tipo de datos hay que usar uno de dos dimensiones que serán x y) : int [ nPuntos, 2] coordenadas; Ya que tenemos eso, ahora hay que preguntar cada coordenada : for(int i=0;i<coordenadas.Lenght;i++) { Console.WriteLine("Ingrese x del punto " +i) ; coordenadas[i,0]=Convert.ToInt32(Console.ReadLine()) ;
12th May 2020, 8:35 AM
Luis E. Gómez Mena
Luis E. Gómez Mena - avatar
0
Console.WriteLine("Ingrese y del punto " +i) ; coordenadas[i,1]=Convert.ToInt32(Console.ReadLine()) ; } Ahora que tenemos todas las coordenadas hay que proceder sacar la distancia entre cada punto usando la fórmula: d=raiz( (x2-x1)^2 + (y2-y1) ^2 ) "la distancia es igual a la raíz de la suma de las diferencias de (x2 - x1) al cuadrado y (y2 - y1) al cuadrado" por si aún tienes duda x1 y1 son las coordenadas del primer punto y x2 y2 son coordenadas del segundo punto
12th May 2020, 8:42 AM
Luis E. Gómez Mena
Luis E. Gómez Mena - avatar
0
Sería de la siguiente forma: int d =0; for(int i=0;i<nPuntos-1;i++){ d+=Math.Sqrt(Math.Pow(coordenadas[i+1,0] - coordenadas[i,0] , 2) + Math.Pow(coordenadas[i+1,1] - coordenadas[i,1] , 2)) ; } Solo faltara sacar la distancia del último punto con el primero por lo que : d+=Math.Sqrt(Math.Pow(coordenadas[coordenadas.Length-1,0] - coordenadas[0,0] , 2) + Math.Pow(coordenadas[coordenadas.Length-1,1] - coordenadas[0,1] , 2)) ;
12th May 2020, 8:52 AM
Luis E. Gómez Mena
Luis E. Gómez Mena - avatar
0
Console.WriteLine("El perímetro es: " +d) ; Y ya sería todo.
12th May 2020, 8:54 AM
Luis E. Gómez Mena
Luis E. Gómez Mena - avatar