home *** CD-ROM | disk | FTP | other *** search
- #include "cp.h"
-
- LONG ScaleX( float val )
- {
- return( LOGX ? logX( val ) : linX( val ) );
- }
-
- LONG ScaleY( float val )
- {
- return( LOGY ? logY( val ) : linY( val ) );
- }
-
- double ZoomX( WORD val )
- {
- return( LOGX ? logZoomX( val ) : linZoomX( val ) );
- }
-
- double ZoomY( WORD val )
- {
- return( LOGY ? logZoomY( val ) : linZoomY( val ) );
- }
-
- __inline LONG linX( float val )
- {
- return (LONG) ((double)( val - cv.xmin ) / cv.xdelta * WIDTH + xoff);
- }
-
- __inline LONG linY( float val )
- {
- return (LONG) (-(double)( val - cv.ymin ) / cv.ydelta * HEIGHT + yoff);
- }
-
- double linZoomX( WORD val )
- {
- return (( val - xoff ) / (double)WIDTH * cv.xdelta + cv.xmin);
- }
-
- double linZoomY( WORD val )
- {
- return (-( val - yoff ) / (double)HEIGHT * cv.ydelta + cv.ymin);
- }
-
- __inline LONG logX( float val )
- {
- return (LONG) ( ( log10( val ) - log10( cv.xmin )) / ( log10( cv.xmax ) - log10( cv.xmin )) * WIDTH + xoff );
- }
-
- __inline LONG logY( float val )
- {
- return (LONG) ( -( log10( val ) - log10( cv.ymin )) / ( log10( cv.ymax ) - log10( cv.ymin )) * HEIGHT + yoff );
- }
-
- double logZoomX( WORD val )
- {
- return ( pow( 10.0, log10( cv.xmin) + ((double)( val - xoff ) / WIDTH) * (log10( cv.xmax) - log10( cv.xmin))));
- }
- double logZoomY( WORD val )
- {
- return ( pow( 10.0, log10( cv.ymin) + ((double)( yoff - val ) / HEIGHT) * (log10( cv.ymax) - log10( cv.ymin))));
- }
-
- void Round( double *g )
- {
- UBYTE s[32];
- sprintf( s,"%18.9lf",*g);
- sscanf( s,"%le",g);
- }
-