From: Ron F. <ro...@us...> - 2004-10-20 18:59:08
|
Update of /cvsroot/nsclspectcl/SpecTcl/Display In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11496 Modified Files: Tag: SpecTcl-2-2_development convert.cc Log Message: Fix counts ticker error in log scale. Index: convert.cc =================================================================== RCS file: /cvsroot/nsclspectcl/SpecTcl/Display/convert.cc,v retrieving revision 4.5.4.3 retrieving revision 4.5.4.4 diff -C2 -d -r4.5.4.3 -r4.5.4.4 *** convert.cc 20 Oct 2004 15:29:35 -0000 4.5.4.3 --- convert.cc 20 Oct 2004 18:58:56 -0000 4.5.4.4 *************** *** 428,431 **** --- 428,432 ---- if(pixel > npix) return -1; + /* Xamine only allows full decade displays so we compute the log of the ** low/hi range truncated to the decade. *************** *** 436,458 **** loglo = (double)llo; } ! else loglo = 0.0; ! if(hi > 0) { ! int lhi = (int)log10((double)hi); ! loghi = (double)lhi; } ! else loghi = 1.0; ! /* now compute the log of the position: */ - double lpos = Transform(0, (float)(npix-1), - loglo, loghi, (float)pixel); - // double lpos = loglo + ((double)(pixel)*(loghi - loglo+1)/(double)npix); ! lpos = pow(10, lpos); ! return (int)lpos; } --- 437,470 ---- loglo = (double)llo; } ! else { loglo = 0.0; ! } if(hi > 0) { ! double lhi = log10((double)hi); ! if ((float)((int)lhi) != lhi) { ! loghi = (double)((int)(lhi+1.0)); ! } ! else { ! loghi = (double)((int)lhi); ! } } ! else { loghi = 1.0; + } + float logvalue = ((float)pixel/(float)npix)*(loghi - loglo) + loglo; ! return (int)pow(10, logvalue); ! /* now compute the log of the position: */ ! ! // double lpos = Transform(0, log10((float)(npix-1)), ! // loglo, loghi, log10((float)pixel)); ! ! // double lpos = loglo + ((double)(pixel)*(loghi - loglo+1)/(double)npix); ! ! // lpos = pow(10, lpos); ! // return (int)lpos; } *************** *** 636,643 **** if(attributes->isflipped()) { loc->xpos = countpos; - if(clipping) { - if(loc->xpos > cntshi) loc->xpos = cntshi; - if(loc->xpos < cntslow)loc->xpos = cntslow; - } loc->ypos = channel; } --- 648,651 ---- *************** *** 645,652 **** loc->xpos = channel; loc->ypos = countpos; ! if(clipping) { ! if(loc->ypos > cntshi) loc->ypos = cntshi; ! if((loc->ypos < cntslow)) loc->ypos = cntslow; ! } } } --- 653,657 ---- loc->xpos = channel; loc->ypos = countpos; ! } } |