# coyote: CGNORMALIZE

- coyote/Graphics
- [Source code]

Description

      This is a utility routine to calculate the scaling vector required to position a
      graphics primitive of specified range at a specific position in an arbitray coordinate
      system. The scaling vector is given as a two-element array like this::
         scalingVector = [translationFactor, scalingFactor]
      The scaling vector should be used with the [XYZ]COORD_CONV keywords of a graphics object
      or model. For example, if you wanted to scale an X axis into the coordinate range of
      -0.5 to 0.5, you might type something like this::
         xAxis->GetProperty, Range=xRange
         xScale = cgNormalize(xRange, Position=[-0.5, 0.5])
         xAxis, XCoord_Conv=xScale

Categories

      Graphics Utility

Params

      range: in, required
         A two-element vector specifying the data range.

Keywords

      position: in, optional, type=float
         A two-element vector specifying the location in the coordinate system you
         are scaling into. The vector [0.0,1.0] is used by default if Position is not
         specified.

Examples

      Here is how to use this program::
         xAxis->GetProperty, Range=xRange
         xScale = cgNormalize(xRange, Position=[-0.5, 0.5])
         xAxis, XCoord_Conv=xScale

Author

      FANNING SOFTWARE CONSULTING::
         David W. Fanning
         1645 Sheely Drive
         Fort Collins, CO 80526 USA
         Phone: 970-221-0438
         E-mail: david@idlcoyote.com
         Coyote's Guide to IDL Programming: http://www.idlcoyote.com

History

      Change History::
        Written by:  David W. Fanning, OCT 1997.
        Fixed a problem with illegal divide by zero. 21 April 2005. DWF.
        Fixed a problem when range[0] is greater than range[1]. 11 July 2006. DWF.
        Renamed to FSC_Normalize to avoid conflicts with 10,000 other programs named NORMALIZE. 17 October 2008. DWF.
        Renamed to cgNormalize 6 February 2013. DWF.
        The number I chose (1e-12) to fix the illegal divide by zero problem was too large. I'm now using
            1d-25 instead. 9 September 2013. DWF.

Copyright

      Copyright (c)1997-2013, Fanning Software Consulting, Inc.