Class HyperbolicTransformer

  • All Implemented Interfaces:
    BidirectionalTransformer, MutableTransformer, ShapeTransformer, ChangeEventSupport
    Direct Known Subclasses:
    HyperbolicShapeTransformer

    public class HyperbolicTransformer
    extends LensTransformer
    implements MutableTransformer
    HyperbolicTransformer wraps a MutableAffineTransformer and modifies the transform and inverseTransform methods so that they create a fisheye projection of the graph points, with points near the center spread out and points near the edges collapsed onto the circumference of an ellipse. HyperbolicTransformer is not an affine transform, but it uses an affine transform to cause translation, scaling, rotation, and shearing while applying a non-affine hyperbolic filter in its transform and inverseTransform methods.
    • Constructor Detail

      • HyperbolicTransformer

        public HyperbolicTransformer​(java.awt.Component component)
        create an instance, setting values from the passed component and registering to listen for size changes on the component
        Parameters:
        component - the component used for rendering
      • HyperbolicTransformer

        public HyperbolicTransformer​(java.awt.Component component,
                                     MutableTransformer delegate)
        Create an instance with a possibly shared transform.
        Parameters:
        component - the component used for rendering
        delegate - the transformer to use
    • Method Detail

      • transform

        public java.awt.geom.Point2D transform​(java.awt.geom.Point2D graphPoint)
        override base class transform to project the fisheye effect
        Specified by:
        transform in interface BidirectionalTransformer
        Specified by:
        transform in class LensTransformer
        Parameters:
        graphPoint - graph point to convert
        Returns:
        screen point
      • inverseTransform

        public java.awt.geom.Point2D inverseTransform​(java.awt.geom.Point2D viewPoint)
        override base class to un-project the fisheye effect
        Specified by:
        inverseTransform in interface BidirectionalTransformer
        Specified by:
        inverseTransform in class LensTransformer
        Parameters:
        viewPoint - screen point to convert
        Returns:
        the graph point