Re: adding shapes to a display

Hi Maohai,

> unfortunately point size is not the only issue. Making the
>  pointSize larger as you suggested was the first thing I
> tried. It worked (reducing the speed by a factor of
> 20 though), but there is only one shape of point in this
> mode. I am asked to be able to plot several data set on one
> plot with different shape of points. So I need 1) to have
> multiple shapes, 2) to have the shapes at very small
> cost in memory and speed for data sets of million
> points, 3) the shapes need not  change often.

There must be some way around this, because the user
cannot come close to distinguishing 1 million shapes
in a single screen. One thought is to plot the million
points as points, and to create another data object
selecting only points not near to other points and
draw them as shapes.

> By the way I have written a plotting application from
> scratch using Graphics.drawPolyline(...). It beats the
> fastest speed of all existing packages by a
> factor of ~10. It doesn't have multiple shapes, but
> the connecting lines show out-lying points nicely.
> It also shows that there is space for  speed improvement
> in existing packages.

Absolutely. The default DataRenderers are very general
(more than any other visualization system), but its hard
for them to optimize every case. So we also support
custom DataRenderers. A good example is
visad/bom/ImageRendererJ3D.java, which renders images
and image sequences much faster than the default
DataRenderers. In order to make it easier for folks to
write their own DataRenderers, we have the DataRenderer
tutorial, and the new visad-renderer@xxxxxxxxxxxxx
mailing list.

Because of the system's generality, there are lots of
other tricks that applications can play, short of writing
custom DataRenderers.

Cheers,
Bill