tCoordenada rotar_coordenada (tCoordenada origen, float angulo, tCoordenada centro_rotacion) { tCoordenada coordenada; float alpha,dist,x,y; coordenada = ini_coordenada(); alpha=angulo_segmento_abcisas (centro_rotacion,origen ); dist=calcular_distancia (centro_rotacion,origen ); girar (angulo); y=dist*sin((alpha+angulo)/180*PI); x=dist*cos((alpha+angulo)/180*PI); coordenada.longitud=centro_rotacion.longitud+x; coordenada.latitud=centro_rotacion.latitud+y; return coordenada; } 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); }