コード例 #1
0
int PlotRawXaxisLabelValue(struct Rplot *ptr,
                      float ox,float oy,float wdt,float hgt,
	              double xmin,double xmax,double value,
		      float offset,int txt_flg,int or,
                      int  (*text_box)(char *,float,int,char *,float *,void *),
                      void *boxdata,
                      int sze,char *text,
                      char *fntname,float fntsze,
                      unsigned int color,unsigned char mask) {
  int s=0;
  float px;
  float txtbx[3];

  if (ptr==NULL) return -1;
  if (text_box==NULL) return -1;
  if (fntname==NULL) return -1;
  if (text==NULL) return -1;

  s=(*text_box)(fntname,fntsze,sze,text,txtbx,boxdata);
  if (s !=0) return s;
  px=wdt*(value-xmin)/(xmax-xmin);

  if (or==0) {
    if (txt_flg & 0x01) 
      s=RplotText(ptr,NULL,fntname,fntsze,ox+px-txtbx[0]/2,
                   oy+hgt+offset+txtbx[2],sze,text,
                   color,0x0f,1);
     if (s !=0) return s;                     
     if (txt_flg & 0x02) 
     s=RplotText(ptr,NULL,fntname,fntsze,ox+px-txtbx[0]/2,
                   oy-offset+txtbx[1],sze,text,
                   color,0x0f,1);
   } else {
     struct RplotMatrix rm;
     rm.a=0;
     rm.b=1;
     rm.c=-1;
     rm.d=0;

     if (txt_flg & 0x01) 
       s=RplotText(ptr,&rm,fntname,fntsze,ox+px+(txtbx[2]+txtbx[1])/2.0,
                   oy+hgt+offset+txtbx[0],sze,text,
                   color,0x0f,1);
     if (s !=0) return s;                     
     if (txt_flg & 0x02) 
     s=RplotText(ptr,&rm,fntname,fntsze,ox+px+(txtbx[1]+txtbx[2])/2.0,
                 oy-offset,sze,text,
                 color,0x0f,1);
     if (s !=0) return s;
   }

   return s;
}
コード例 #2
0
int PlotRawText(struct Rplot *ptr,
                struct RplotMatrix *matrix,
                float ox,float oy,float wdt,float hgt,
                char *fontname,float fontsize,
                double x,double y,int num,char *txt,
                float dx,float dy,
		double xmin,double xmax,
                double ymin,double ymax,
                unsigned int color,unsigned char mask) {

  float fx,fy;
 
  fx=ox+dx+wdt*(x-xmin)/(xmax-xmin);
  fy=oy-dy+hgt-hgt*(y-ymin)/(ymax-ymin);

  return RplotText(ptr,matrix,fontname,fontsize,fx,fy,num,txt,
                        color,mask,1);
}
コード例 #3
0
void plot_chi(struct Rplot *rplot,
                float xoff,float yoff,
                struct CnvMapData *ptr,
	        int degfree,int degfree_dat,
                unsigned int color,unsigned char mask,
                char *txtfontname,char *symfontname,float fontsize,
                void *txtdata) {

  char txt[256];
  float txbox[3];
  float lhgt;

  sprintf(txt,"Xy");
  txtbox(txtfontname,fontsize,strlen(txt),txt,txbox,txtdata);
  lhgt=4+txbox[2]-txbox[1];

  txtbox(symfontname,fontsize,strlen("c"),"c",txbox,txtdata);
 

  RplotText(rplot,NULL,symfontname,fontsize,xoff,yoff,
            strlen("c"),"c",color,mask,1);
  RplotText(rplot,NULL,txtfontname,fontsize*0.8,xoff+txbox[0],yoff-lhgt*0.2,
            strlen("2"),"2",color,mask,1);
  sprintf(txt,"/%d=%.1g",degfree,ptr->chi_sqr/degfree);
  RplotText(rplot,NULL,txtfontname,fontsize,xoff+txbox[0]*2,yoff,
            strlen(txt),txt,color,mask,1);


  RplotText(rplot,NULL,symfontname,fontsize,xoff,yoff+lhgt,
            strlen("c"),"c",color,mask,1);
  RplotText(rplot,NULL,txtfontname,fontsize*0.8,xoff+txbox[0],yoff+lhgt*0.8,
            strlen("2"),"2",color,mask,1);
  sprintf(txt,"/%d=%.1g",degfree_dat,ptr->chi_sqr/degfree_dat);
  RplotText(rplot,NULL,txtfontname,fontsize,xoff+txbox[0]*2,yoff+lhgt,
            strlen(txt),txt,color,mask,1);
}
コード例 #4
0
int PlotRawYaxisTitle(struct Rplot *ptr,
                      float ox,float oy,float wdt,float hgt,
		      float offset,int txt_flg,int or,
                      int  (*text_box)(char *,float,int,char *,float *,void *),
                      void *boxdata,
                      int sze,char *text,
                      char *fntname,float fntsze,
                      unsigned int color,unsigned char mask) {
  
  int s=0;
  float txtbx[3];

  if (ptr==NULL) return -1;
  if (text_box==NULL) return -1;
  if (fntname==NULL) return -1;
  if (text==NULL) return -1;

   s=(*text_box)(fntname,fntsze,sze,text,txtbx,boxdata);
   if (s !=0) return s;
  
   if (or==0) {
     if (txt_flg & 0x01) {
       if (txt_flg & 0x04) 
       s=RplotText(ptr,NULL,fntname,fntsze,ox-offset-txtbx[0],
                   oy+hgt+txtbx[1],sze,text,
                   color,0x0f,1);
       else if (txt_flg & 0x08) 
       s=RplotText(ptr,NULL,fntname,fntsze,ox-offset-txtbx[0],
                   oy+txtbx[2],sze,text,
                   color,0x0f,1);
       else 
       s=RplotText(ptr,NULL,fntname,fntsze,ox-offset-txtbx[0],
                   oy+(hgt+txtbx[1]+txtbx[2])/2.0,sze,text,
                   color,0x0f,1);
      if (s !=0) return s;                    
     }
     if (txt_flg & 0x02) {
      if (txt_flg & 0x04) 
       s=RplotText(ptr,NULL,fntname,fntsze,ox+wdt+offset,
                   oy+hgt+txtbx[1],sze,text,
                   color,0x0f,1);
       else if (txt_flg & 0x08) 
       s=RplotText(ptr,NULL,fntname,fntsze,ox+wdt+offset,
                   oy+txtbx[2],sze,text,
                   color,0x0f,1);
       else 
       s=RplotText(ptr,NULL,fntname,fntsze,ox+wdt+offset,
                   oy+(hgt+txtbx[1]+txtbx[2])/2.0,sze,text,
                   color,0x0f,1);
      if (s !=0) return s;    
     }
   } else {
     struct RplotMatrix rm;
     rm.a=0;
     rm.b=1;
     rm.c=-1;
     rm.d=0;

     if (txt_flg & 0x01) {
       if (txt_flg & 0x04) 
       s=RplotText(ptr,&rm,fntname,fntsze,ox-offset+txtbx[1],
                   oy+hgt,sze,text,
                   color,0x0f,1);
       else if (txt_flg & 0x08) 
       s=RplotText(ptr,&rm,fntname,fntsze,ox-offset+txtbx[1],
                   oy+txtbx[0],sze,text,
                   color,0x0f,1);
       else 
       s=RplotText(ptr,&rm,fntname,fntsze,ox-offset,
                   oy+(hgt+txtbx[0])/2.0,sze,text,
                   color,0x0f,1);
      if (s !=0) return s;                    
     }

     if (txt_flg & 0x02) {
       if (txt_flg & 0x04) 
       s=RplotText(ptr,&rm,fntname,fntsze,ox+wdt+offset+txtbx[2],
                   oy+hgt,sze,text,
                   color,0x0f,1);
       else if (txt_flg & 0x08) 
       s=RplotText(ptr,&rm,fntname,fntsze,ox+wdt+txtbx[2],
                   oy+txtbx[0],sze,text,
                   color,0x0f,1);
       else 
       s=RplotText(ptr,&rm,fntname,fntsze,ox+wdt+offset+txtbx[2],
                   oy+(hgt+txtbx[0])/2.0,sze,text,
                   color,0x0f,1);
      if (s !=0) return s;                    
     }
   } 
   return 0;
}
コード例 #5
0
int PlotRawYaxisLabel(struct Rplot *ptr,
                      float ox,float oy,float wdt,float hgt,
	              double ymin,double ymax,double step,
		      float offset,int txt_flg,int or,
                      int  (*text_box)(char *,float,int,char *,float *,void *),
                      void *boxdata,
                      char * (*make_text)(double,double,double,void *),
                      void *textdata,
                      char *fntname,float fntsze,
                      unsigned int color,unsigned char mask) {

  float py;
  double y;
  float txtbx[3];
  char *text=NULL;
  int s=0;

  if (ptr==NULL) return -1;
  if (make_text==NULL) return -1;
  if (text_box==NULL) return -1;
  if (fntname==NULL) return -1;
  if (step==0) return 0;

  for (y=ymin;y<=ymax;y+=step) {
     text=(*make_text)(y,ymin,ymax,textdata);
     if (text==NULL) continue;
     s=(*text_box)(fntname,fntsze,strlen(text),text,txtbx,boxdata);
     if (s !=0) break;
     py=hgt*(y-ymin)/(ymax-ymin);

     if (or==0) {
       if (txt_flg & 0x01) 
         s=RplotText(ptr,NULL,fntname,fntsze,ox-offset-txtbx[0],
                     oy+(txtbx[1]+txtbx[2])/2.0+hgt-py,strlen(text),text,
                     color,0x0f,1);
       if (s !=0) break;                     
       if (txt_flg & 0x02) 
         s=RplotText(ptr,NULL,fntname,fntsze,ox+wdt+offset,
                     oy+(txtbx[1]+txtbx[2])/2.0+hgt-py,strlen(text),text,
                     color,0x0f,1);
       if (s !=0) break;
     } else {
       struct RplotMatrix rm;
       rm.a=0;
       rm.b=1;
       rm.c=-1;
       rm.d=0;

       if (txt_flg & 0x01) 
         s=RplotText(ptr,&rm,fntname,fntsze,ox-offset+txtbx[1],
                     oy+hgt-py+txtbx[0]/2.0,strlen(text),text,
                     color,0x0f,1);
       if (s !=0) break;                     
       if (txt_flg & 0x02) 
         s=RplotText(ptr,&rm,fntname,fntsze,ox+wdt+offset+txtbx[2],
                     oy+hgt-py+txtbx[0]/2.0,strlen(text),text,
                     color,0x0f,1);
       if (s !=0) break;
     }

     free(text);
     text=NULL;
  }
  if (text !=NULL) free(text);
  return s;
}
コード例 #6
0
int PlotRawXaxisLabel(struct Rplot *ptr,
                      float ox,float oy,float wdt,float hgt,
	              double xmin,double xmax,double step,
		      float offset,int txt_flg,int or,
                      int  (*text_box)(char *,float,int,char *,float *,void *),
                      void *boxdata,
                      char * (*make_text)(double,double,double,void *),
                      void *textdata,
                      char *fntname,float fntsze,
                      unsigned int color,unsigned char mask) {

  float px;
  double x;
  float txtbx[3];
  char *text=NULL;
  int s=0;

  if (ptr==NULL) return -1;
  if (make_text==NULL) return -1;
  if (text_box==NULL) return -1;
  if (fntname==NULL) return -1;
  if (step==0) return 0;

  for (x=xmin;x<=xmax;x+=step) {
     text=(*make_text)(x,xmin,xmax,textdata);
     if (text==NULL) continue;
     s=(*text_box)(fntname,fntsze,strlen(text),text,txtbx,boxdata);
     if (s !=0) break;
     px=wdt*(x-xmin)/(xmax-xmin);

     if (or==0) {
       if (txt_flg & 0x01) 
         s=RplotText(ptr,NULL,fntname,fntsze,ox+px-txtbx[0]/2,
                     oy+hgt+offset+txtbx[2],strlen(text),text,
                     color,0x0f,1);
       if (s !=0) break;                     
       if (txt_flg & 0x02) 
         s=RplotText(ptr,NULL,fntname,fntsze,ox+px-txtbx[0]/2,
                     oy-offset+txtbx[1],strlen(text),text,
                     color,0x0f,1);
       if (s !=0) break;
     } else {
       struct RplotMatrix rm;
       rm.a=0;
       rm.b=1;
       rm.c=-1;
       rm.d=0;

       if (txt_flg & 0x01) 
         s=RplotText(ptr,&rm,fntname,fntsze,ox+px+(txtbx[2]+txtbx[1])/2.0,
                     oy+hgt+offset+txtbx[0],strlen(text),text,
                     color,0x0f,1);
       if (s !=0) break;                     
       if (txt_flg & 0x02) 
         s=RplotText(ptr,&rm,fntname,fntsze,ox+px+(txtbx[1]+txtbx[2])/2.0,
                     oy-offset,strlen(text),text,
                     color,0x0f,1);
       if (s !=0) break;
     }


     free(text);
     text=NULL;
  }
  if (text !=NULL) free(text);
  return s;
}