home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 2 / FFMCD02.bin / new / misc / sci / cp / source / func.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-12-21  |  1.4 KB  |  68 lines

  1.  
  2. #include "cp.h"
  3.  
  4. LONG ScaleX( float val )
  5. {
  6.      return( LOGX ? logX( val ) : linX( val ) );
  7. }
  8.  
  9. LONG ScaleY( float val )
  10. {
  11.      return( LOGY ? logY( val ) : linY( val ) );
  12. }
  13.  
  14. double ZoomX( WORD val )
  15. {
  16.      return( LOGX ? logZoomX( val ) : linZoomX( val ) );
  17. }
  18.  
  19. double ZoomY( WORD val )
  20. {
  21.      return( LOGY ? logZoomY( val ) : linZoomY( val ) );
  22. }
  23.  
  24. __inline LONG linX( float val )
  25. {
  26.      return (LONG) ((double)( val - cv.xmin ) / cv.xdelta * WIDTH + xoff);
  27. }
  28.  
  29. __inline LONG linY( float val )
  30. {
  31.      return (LONG) (-(double)( val - cv.ymin ) / cv.ydelta * HEIGHT + yoff);
  32. }
  33.  
  34. double linZoomX( WORD val )
  35. {
  36.      return (( val - xoff ) / (double)WIDTH * cv.xdelta + cv.xmin);
  37. }
  38.  
  39. double linZoomY( WORD val )
  40. {
  41.      return (-( val - yoff ) / (double)HEIGHT * cv.ydelta + cv.ymin);
  42. }
  43.  
  44. __inline LONG logX( float val )
  45. {
  46.      return (LONG) ( ( log10( val ) - log10( cv.xmin )) / ( log10( cv.xmax ) - log10( cv.xmin )) * WIDTH + xoff );
  47. }
  48.  
  49. __inline LONG logY( float val )
  50. {
  51.      return (LONG) ( -( log10( val ) - log10( cv.ymin )) / ( log10( cv.ymax ) - log10( cv.ymin )) * HEIGHT + yoff );
  52. }
  53.  
  54. double logZoomX( WORD val )
  55. {
  56.      return ( pow( 10.0, log10( cv.xmin) + ((double)( val - xoff ) / WIDTH) * (log10( cv.xmax) - log10( cv.xmin))));
  57. }
  58. double logZoomY( WORD val )
  59. {
  60.      return ( pow( 10.0, log10( cv.ymin) + ((double)( yoff - val ) / HEIGHT) * (log10( cv.ymax) - log10( cv.ymin))));
  61. }
  62.  
  63. void Round( double *g )
  64. {
  65. UBYTE s[32];
  66.      sprintf( s,"%18.9lf",*g);
  67.      sscanf( s,"%le",g);
  68. }
  69.