Hi Maohai,
I agree with Tom that the first thing to try is something like:
display.getGraphicsModeCOntrol().setPointSize(5.f);
> One user requirement is to plot a million points and pick out
> interesting part to zoom in until individual points are resolved
> on the screen. From my test the fasted way to draw a large
> number of points is plotting in (x->y) with setPointMode(true).
> Each point then is a pixel. I suppose this is not the same as drawing
> everypoing with VisADPointArray?
I think in this situation the points will be put into one big
VisADPointArray.
> Anyways in this mode, each point
> is so small that the out liers are easy to overlook. So I start
> experimenting with drawing with shapes. There is precisely one
> shape at a time, though it is drawn a million times from the
> user point of view. Now it looks like there is no way to get
> around having at least an array of indices of large size created,
> and having this array referenced when each point is plotted.
You might try making a histogram of your million points using
the static visad.python.JPythonMethods.hist(Field, int[], int[])
method. After the user zooms in, then you could revert to plotting
the smaller number of selected points.
But I'm with Tom: try setPointSize() first.
Cheers,
Bill