Changeset 1631 in Sophya for trunk/SophyaPI/PI/pidrawer.cc


Ignore:
Timestamp:
Aug 8, 2001, 6:51:43 PM (24 years ago)
Author:
cmv
Message:

gestion du format pour l impression x=,y= avec curseur ou reticule cmv 8/8/01

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaPI/PI/pidrawer.cc

    r1618 r1631  
    616616
    617617/* --Methode-Static-- */
    618 int PIDrawer::BonFormatAxes(double xmin,double xmax,double dx,string& format)
     618int PIDrawer::BonFormatAxes(double xmin,double xmax,double dx,string& format, int add_digit)
    619619// Calcul format optimal pour ecrire les axes
    620 // double = 17 digits : +d.(16digits)e+ddd  -> e25.18 est large!
     620// double = 17 digits : +d.(17digits)e+ddd  -> min 25%17e  -> securite 26%18e
     621// ** add_digit nombre de digit a ajouter au nombre de digit minimum.
    621622{
    622623 format = "%-6g";  // format par default
     
    659660 ndig -= 2;  // +1 - 3 (car par ex:"+9.")
    660661
     662 // on ajoute des digits au cas ou on veut plus que le minimum requis
     663 ndig += add_digit;
     664
    661665 // Si peu de digits on reste avec le format par defaut
    662666 // Attention: %6g arrondi le 6ieme digit -> ndig<5 !
    663667 if(ndig<6) return ndig;
    664668
     669 // Calcule du nombre nn devant le format %nn.ddde
     670 //                        +a.<---ddd--->e+123
     671 //                       nndig = ddd + 8
     672 int nndig = ndig + 8; if(nndig<=0) nndig = 26;
     673
    665674 // On evite d'ecrire d.ddde+00   -> format %f
    666675 if(  (xmin>=1. && xmin<10. && xmax>=1. && xmax<10.)
    667676   || (xmin>-10. && xmin<=-1. && xmax>-10. && xmax<=-1.) ) {
    668    sprintf(str,"%%-26.%df",ndig);
     677   sprintf(str,"%%-%d.%df",nndig,ndig);
    669678 } else {
    670    sprintf(str,"%%-26.%de",ndig);
     679   sprintf(str,"%%-%d.%de",nndig,ndig);
    671680 }
    672681 format = str;
Note: See TracChangeset for help on using the changeset viewer.