Changeset 1631 in Sophya for trunk/SophyaPI/PI/pidrawer.cc
- Timestamp:
- Aug 8, 2001, 6:51:43 PM (24 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaPI/PI/pidrawer.cc
r1618 r1631 616 616 617 617 /* --Methode-Static-- */ 618 int PIDrawer::BonFormatAxes(double xmin,double xmax,double dx,string& format )618 int PIDrawer::BonFormatAxes(double xmin,double xmax,double dx,string& format, int add_digit) 619 619 // 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. 621 622 { 622 623 format = "%-6g"; // format par default … … 659 660 ndig -= 2; // +1 - 3 (car par ex:"+9.") 660 661 662 // on ajoute des digits au cas ou on veut plus que le minimum requis 663 ndig += add_digit; 664 661 665 // Si peu de digits on reste avec le format par defaut 662 666 // Attention: %6g arrondi le 6ieme digit -> ndig<5 ! 663 667 if(ndig<6) return ndig; 664 668 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 665 674 // On evite d'ecrire d.ddde+00 -> format %f 666 675 if( (xmin>=1. && xmin<10. && xmax>=1. && xmax<10.) 667 676 || (xmin>-10. && xmin<=-1. && xmax>-10. && xmax<=-1.) ) { 668 sprintf(str,"%%- 26.%df",ndig);677 sprintf(str,"%%-%d.%df",nndig,ndig); 669 678 } else { 670 sprintf(str,"%%- 26.%de",ndig);679 sprintf(str,"%%-%d.%de",nndig,ndig); 671 680 } 672 681 format = str;
Note:
See TracChangeset
for help on using the changeset viewer.