File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Java in General and the fly likes Plot zooming and double buffering Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Java Interview Guide this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Java » Java in General
Bookmark "Plot zooming and double buffering" Watch "Plot zooming and double buffering" New topic

Plot zooming and double buffering

Norm Radder
Ranch Hand

Joined: Aug 10, 2005
Posts: 696
I have a plot program that displaces nodes and connecting lines. The nodes represent WayPoints in a region of the globe.
I initially scale the plot so that all of the nodes will show. Normally all the nodes are in a region, say the Caribbean Sea.
The Lat/Long of the WPs are converted to pixels and mapped into the display.
When I ZoomIn by X2, I change the number of pixels per degree of Lat/Long by X2 and then redraw the plot. I also allow the plot to be repositioned by click and drag with the mouse. The zooming works up to about 16X, which is adequate.

The problem is there is a small amount of flickering because I don't double buffer the image.
When I tried double buffering, I ran into problems with the createImage() method call trying to create TOO large an image after zooming in several times, The JVM runs out of space!

My question: How do I draw the WP and connecting lines when zooming?

Am I misusing the createImage() method? I'm having it create an image the size of the total zoomed area. This fails when the size of the area becomes too large!

Is there a way to use translate() or the clip area?

Why does the original Graphics context allow me to draw a plot up to about 16X with no problems?

I agree. Here's the link:
subject: Plot zooming and double buffering
jQuery in Action, 3rd edition