#include "contorno.h" void ini_contorno (tContorno *contorno ) { int i; contorno->num_puntos_contorno=0; for (i=0;icontorno[i].latitud=0; contorno->contorno[i].longitud=0; } } void leer_contorno_teclado (tContorno *dibujo) { int i; printf("Escriu el nombre de punts:\n"); scanf("%d%*c",&dibujo->num_puntos_contorno); for(i=0;inum_puntos_contorno;i++){ dibujo->contorno[i]=leer_coordenada_teclado(); } } int buscar_coordenada_contorno (tContorno contorno, tCoordenada coordenada) { int i=0; while (!coordenadas_iguales(contorno.contorno[i],coordenada) && inum_puntos_contorno; if (contorno->num_puntos_contorno==MAX_PUNTOS_CONTORNO && buscar_coordenada_contorno (*contorno,coordenada)!= -1){ printf ("La llista de coordenades esta plena!!o la coordenada ja existeix\n"); return 0; }else{ contorno->contorno[i].latitud=coordenada.latitud; contorno->contorno[i].longitud=coordenada.longitud; contorno->num_puntos_contorno++; return i; } } int eliminar_coordenada_contorno (tContorno *contorno, tCoordenada coordenada) { int i; /*pos=buscar_coordenada_contorno (*contorno, coordenada);*/ if (contorno->num_puntos_contorno==0 || buscar_coordenada_contorno (*contorno, coordenada) == -1){ printf ("no s'ha pogut eliminar cap element perquè la llista està buida o la coordenada no hi es!!"); return 0; }else{ for (i=buscar_coordenada_contorno (*contorno, coordenada);inum_puntos_contorno;i++){ contorno->contorno[i].latitud = contorno->contorno[i+1].latitud; contorno->contorno[i].longitud = contorno->contorno[i+1].longitud; } contorno->num_puntos_contorno--; } return buscar_coordenada_contorno (*contorno, coordenada) ; } void dibujar_contorno_mapa (tContorno contorno) { int i; for (i=0;icontorno[i].latitud,&contorno->contorno[i].longitud); i++; } contorno->num_puntos_contorno = i; return i; } fclose (fpin); } void rotar_contorno ( tContorno *contorno, float angulo, tCoordenada centro_rotacion) { int i; for (i=0; inum_puntos_contorno;i++){ contorno->contorno[i] = rotar_coordenada (contorno->contorno[i], angulo, centro_rotacion); } dibujar_contorno_mapa (*contorno); } float calcular_perimetro (tContorno dibujo) { int i; float res,perim; perim = 0; res = 0; if(dibujo.num_puntos_contorno == 2){ res = calcular_distancia (dibujo.contorno[0],dibujo.contorno[1]); }else{ for (i=0;i