void leg_discrete(t_psdata ps,real x0,real y0,char *label, real fontsize,char *font,int nmap,t_mapping map[]) { int i; real yhh; real boxhh; boxhh=fontsize+DDD; /* LANDSCAPE */ ps_rgb(ps,BLACK); ps_strfont(ps,font,fontsize); yhh=y0+fontsize+3*DDD; if ((int)strlen(label) > 0) ps_ctext(ps,x0,yhh,label,eXLeft); ps_moveto(ps,x0,y0); for(i=0; (i<nmap); i++) { ps_setorigin(ps); ps_rgb(ps,&(map[i].rgb)); ps_fillbox(ps,DDD,DDD,DDD+fontsize,boxhh-DDD); ps_rgb(ps,BLACK); ps_box(ps,DDD,DDD,DDD+fontsize,boxhh-DDD); ps_ctext(ps,boxhh+2*DDD,fontsize/3,map[i].desc,eXLeft); ps_unsetorigin(ps); ps_moverel(ps,DDD,-fontsize/3); } }
void leg_continuous(t_psdata ps,real x0,real x,real y0,char *label, real fontsize,char *font, int nmap,t_mapping map[], int mapoffset) { int i; real xx0; real yhh,boxxh,boxyh; boxyh=fontsize; if (x<8*fontsize) x=8*fontsize; boxxh=(real)x/(real)(nmap-mapoffset); if (boxxh>fontsize) boxxh=fontsize; /* LANDSCAPE */ xx0=x0-((nmap-mapoffset)*boxxh)/2.0; for(i=0; (i<nmap-mapoffset); i++) { ps_rgb(ps,&(map[i+mapoffset].rgb)); ps_fillbox(ps,xx0+i*boxxh,y0,xx0+(i+1)*boxxh,y0+boxyh); } ps_strfont(ps,font,fontsize); ps_rgb(ps,BLACK); ps_box(ps,xx0,y0,xx0+(nmap-mapoffset)*boxxh,y0+boxyh); yhh=y0+boxyh+3*DDD; ps_ctext(ps,xx0+boxxh/2,yhh,map[0].desc,eXCenter); if ((int)strlen(label) > 0) ps_ctext(ps,x0,yhh,label,eXCenter); ps_ctext(ps,xx0+((nmap-mapoffset)*boxxh) - boxxh/2,yhh,map[nmap-1].desc,eXCenter); }
void plot_phi(char *fn,rvec box,int natoms,rvec x[],real phi[]) { t_psdata eps; real phi_max,rr,gg,bb,fac,dx,x0,y0; real offset; int i; phi_max=phi[0]; rr=gg=bb=0.0; for(i=0; (i<natoms); i++) phi_max=max(phi_max,fabs(phi[i])); if (phi_max==0.0) { fprintf(stderr,"All values zero, see .out file\n"); return; } offset=20.0; fac=15.0; #ifdef DEBUG fprintf(stderr,"Scaling box by %g\n",fac); #endif eps=ps_open(fn,0,0, (real)(fac*box[XX]+2*offset),(real)(fac*box[YY]+2*offset)); ps_translate(eps,offset,offset); ps_color(eps,0,0,0); ps_box(eps,1,1,(real)(fac*box[XX]-1),(real)(fac*box[YY]-1)); dx=0.15*fac; for(i=0; (i<natoms); i++) { rr=gg=bb=1.0; if (phi[i] < 0) gg=bb=(1.0+(phi[i]/phi_max)); else rr=gg=(1.0-(phi[i]/phi_max)); rr=rgbset(rr); gg=rgbset(gg); bb=rgbset(bb); ps_color(eps,rr,gg,bb); x0=fac*x[i][XX]; y0=fac*x[i][YY]; ps_fillbox(eps,(real)(x0-dx),(real)(y0-dx),(real)(x0+dx),(real)(y0+dx)); } ps_close(eps); }