octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Handle Graphics implementation in Octave.


From: Ole Jacob Hagen
Subject: Re: Handle Graphics implementation in Octave.
Date: Wed, 12 Nov 2003 03:21:47 +0100

On Tue, 11 Nov 2003 19:14:13 -0500
Paul Kienzle <address@hidden> wrote:
> If I have a complicated visual representation
> I want to create, including several different
> graphs in a set of windows with a number of
> different annotations associated with them, and
> if I want to produce this graph from within my GUI
> app in response to some user file selections,
> I don't want to see one curve plotted, then  another
> on top of it (with axis limits scaling automatically),
> then have it shrink down because I want to put another
> graph beside it, then have it shrink some more because
> I add a title, then have it shrink some more because
> I add an x-axis label, etc.  Instead I want to see
> the whole operation happen as a single update.

Explanation on how Oplot++ works today: 

1. You say: oplot(x,y); oplot.oct is called
2. Octave is then starting a Oplot++ application, as server. 
    Oplot++ is forked by Octave. 
                             .
                             .
N-1. Now the datas are sent. 
    plotCurve-value is sent, to notify Oplot++ to plot a 2D curve.
    Then x-coordinates are sent to Oplot++
    Next is y-coordinates. 
N. Now the visualisation takes place. 

The blanks are putted there intentionally, since no visualisation is done, 
until the data are sent. 

1. You say: osurface(x,y,z); osurface.oct are sent. 
2. Octave is then starting a Oplot++ application, as server. 
    Oplot++ is forked by Octave. 
                             .
                             .
N-1. Now the datas are sent. 
    plotSurface-value is sent, to notify Oplot++ to plot a 3D surface.
    Then x-coordinates are sent to Oplot++
    Next is y-coordinates. and then z-axes
N. Now the visualisation takes place. 

This way, you can control the visualisation procedure. 
Setup figure first, and then sent data.
You can manually decide which figure to manipulate, after this is done.

It will be easy to send a start of command and a end of command, for this 
purposes. 
Eventually a timeout could also be detected. 

Oplot++ is available at http://sourceforge.net/projects/oplot.
Just look for the CVS-version. 
Take a look and give me suggestions. 

> The printed representation of a graph does not match
> the screen representation.  You need a way to compose
> graphs on a page for printing so that they come out
> nicely.  E.g., don't take the postscript representation
> of your graph and stretch it to fit since the fonts
> will look horrible and your square point markers will
> turn into rectangles.  You need a way to preview the
> graph so that the user knows what will come out.
> Ideally, you need to be able to move the graphs around
> on the print canvas.  And finally, since you are doing
> this from an end user app, you need a way of storing
> the configuration for that particular page layout so
> that the next time the user prints that report she
> doesn't have to rearrange the graphs again.

Coin3D-API supports both jpeg, ps-generation, eps-generation. And so will 
Oplot++ do. 
There should be no problems in generation of ps-files, eps-files, and so on. 

Cheers, 

Ole J. 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]