#include <stdio.h>
#include <math.h>
FILE *fp;
char a[120],c1[14],c2[14];
double pi,cx,cy,scale=0.454;
main(int ac, char **av)
{ 
  int i,j,k;
  float x1,x2,x3,x4,y1,y2,y3,y4;
  float u1,u2,v1,v2;
  double rc,dc;
  pi=4.*atan(1.0); cx=pi/12.; cy=pi/180.;

  if(ac<2){
    printf("\n\t***** get v_2.cat's center *******\n");
    printf("\n\t assume: scale 0.454/pixel\n");
    printf("\n\t getv2cen !\n\n");
    exit(0);
  }
  fp=fopen("v_2.cat","r");
  if(fp==0){ printf("\n\tv_2.cat not found! use v_11\n\n"); exit(0); }
  u1=-99; u2=99; v1=99; v2=-99;
l10:
  fgets(a,120,fp); if(feof(fp))goto l20;
  sscanf(&a[17],"%f %f %f %f %f %f %f %f",&x1,&y1,&x2,&y2,&x3,&y3,&x4,&y4);
  if(u1<x1)u1=x1; if(u1<x2)u1=x2; if(u1<x3)u1=x3; if(u1<x4)u1=x4;
  if(u2>x1)u2=x1; if(u2>x2)u2=x2; if(u2>x3)u2=x3; if(u2>x4)u2=x4;
  if(v1>y1)v1=y1; if(v1>y2)v1=y2; if(v1>y3)v1=y3; if(v1>y4)v1=y4;
  if(v2<y1)v2=y1; if(v2<y2)v2=y2; if(v2<y3)v2=y3; if(v2<y4)v2=y4;
//  printf("%f %f %f %f %f %f %f %f\n",x1,y1,x2,y2,x3,y3,x4,y4);
  goto l10;
l20:
  fclose(fp);
  rc=(u1+u2)/2.; dc=(v1+v2)/2.;
  toms2(rc,c1,1); toms2(dc,c2,0);
  printf("max_min ra,dc: %f %f %f %f\n",u1,u2,v1,v2);
  printf("center: %lf %lf %s %s\n",rc,dc,c1,c2);
  toms2(u1,c1,1); toms2(u2,c2,1);
  printf("ra: %s %s\n",c1,c2);
  toms2(v1,c1,0); toms2(v2,c2,0);
  printf("dec: %s %s\n",c1,c2);
  rc=(u1-u2)/2.*15.*cos(dc*cy); dc=(v2-v1)/2.;
  toms2(rc,c1,0); toms2(dc,c2,0);
  printf("radio ra dc: %s %s\n",c1,c2); 
  i=rc*3600./scale+.5; j=dc*3600./scale+0.5; 
  printf("in pixel: %d %d   %d %d\n",i*2,j*2,i,j);
} 

toms2(aa,c,k)
double aa;           // input
char c[14];          // output
int k;               // input
/*
 hour or degree to char_line
 if k=1 (hour case) in **:**:**.***
    k=0 (degree       -**:**:**.**
*/
{
  int  i,j;
  double a,b,x;
  a=aa;
  if(k==1){ if(a>24.)a-=24.; if(a<0.)a+=24.; }
  c[0]=32; if(a<0.){ a=-a; c[0]='-'; }
  i=a; b=(a-i)*60.;
  j=b; x=(b-j)*60.;
  if(j==60){ j=0; i++; }
  if(k==1)sprintf(&c[1],"%2.2d:%2.2d:%6.3f",i,j,x);
  if(k==0)sprintf(&c[1],"%2.2d:%2.2d:%5.2f",i,j,x);
  if(c[7]==32)c[7]='0';   if(c[8]==32)c[8]='0';
  if(c[7]=='6'){
    c[7]='0'; j++; sprintf(&c[4],"%2.2d",j);
    if(c[4]=='6'){
      c[4]='0'; i++; sprintf(&c[1],"%2.2d",i);
    }
    c[3]=':'; c[6]=':';
  }
}

