Hello, I am zooming into a choosen Rect in a SVG-Map:
// Zoom translate AffineTransform at = new AffineTransform(); at.scale(scale, scale); at.translate(-xStart, -yStart); at.concatenate(svgCanvas.getRenderingTransform()); svgCanvas.setRenderingTransform(at); So now if i zoom a few times in, i want to zoom out. I want to zoom out back to the last zoomed-in status. I tried it like this: //width & height of the last choosen rect (choosen area for zooming in) int dx = releasedX - pressedX; int dy = releasedY - pressedY; //Zoom-out AffineTransform at = new AffineTransform(); at.translate(pressedX+dx/2, pressedY+dy/2); at.scale(zoomScale.getLast(), zoomScale.getLast()); //zoomScale is a LinkedList where the Scalings of the last zoom-in actions are being saved at.translate(-pressedX-dx/2, -pressedY-dy/2); svgCanvas.setRenderingTransform(at); //removing the last zoomScale zoomTimes.removeLast(); So my problem is: when i zoom in, it works very well. But when i try to zoomout (back to the last zoomed-in status), it doesent zoomes me exactly to that area back! It's zooming a little bit to much down and to the left side instead of the exact choosen area from the last zoomed-in status. Can anybody help me? Has anyone coded something like that? Maybe i can use some code samples from yours.. greetings, Manuel
