home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 6 / FreshFish_September1994.bin / bbs / misc / cp-4.3.lha / cP / Source / func.c < prev    next >
C/C++ Source or Header  |  1994-07-12  |  1KB  |  68 lines

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