[prev in list] [next in list] [prev in thread] [next in thread] 

List:       batik-users
Subject:    Zoom on mouse wheel
From:       hardc0d3r <hardc0d3r () gmail ! com>
Date:       2008-06-28 14:20:23
Message-ID: 18171181.post () talk ! nabble ! com
[Download RAW message or body]


i have this code that uses the mouse wheel to zoom. it does work but its
slow.. can anyone improve this code?

    public void mouseWheelMoved(MouseWheelEvent e) {
        AffineTransform tx = new AffineTransform();
        double scale = 1.0;
        JGVTComponent c = (JGVTComponent)e.getSource();
        
        if (e.getScrollType() == MouseWheelEvent.WHEEL_UNIT_SCROLL) {
            Point2D p1 = e.getPoint();
            Point2D p2 = null;
            try {
                p2 = tx.inverseTransform(p1, null);
            } catch (NoninvertibleTransformException ex) {
                // should not get here
                ex.printStackTrace();
                return;
            }

            scale -= (0.1 * e.getWheelRotation());
            scale = Math.max(0.1, scale);

            tx.setToIdentity();
            tx.translate(p1.getX(), p1.getY());
            tx.scale(scale, scale);
            tx.translate(-p2.getX(), -p2.getY());
            
            AffineTransform rt =
(AffineTransform)c.getRenderingTransform().clone();
            rt.preConcatenate(tx);
            c.setRenderingTransform(rt);
        }
    }
-- 
View this message in context: http://www.nabble.com/Zoom-on-mouse-wheel-tp18171181p18171181.html
Sent from the Batik - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: batik-users-help@xmlgraphics.apache.org

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic