vector graphics library with pan and zoom

P

Patrick Doyle

Hello,
I'm not trying to open a debate about which GUI library is the best.
I would just like a pointer to a graphics library I can use to draw
some vector graphics (lines, arcs, circles, polygons, possibly filled
polygons, etc...) which would be presented to a Windows user in a
window which (s)he could pan and zoom in and out.

Does anybody know if such a beast exists?

If not, can anybody point me at the easiest way to get something close to that?

If not, can anybody point me at the easiest way to get any sort of
vector graphics drawn in a Windows window? (This is the part I cringe
at -- I'm _really_ not trying to ignite a holy war here.)

Thanks for any pointers...

--wpd
 
J

Joel VanderWerf

Patrick said:
Hello,
I'm not trying to open a debate about which GUI library is the best.
I would just like a pointer to a graphics library I can use to draw
some vector graphics (lines, arcs, circles, polygons, possibly filled
polygons, etc...) which would be presented to a Windows user in a
window which (s)he could pan and zoom in and out.

Does anybody know if such a beast exists?

If not, can anybody point me at the easiest way to get something close to that?

If not, can anybody point me at the easiest way to get any sort of
vector graphics drawn in a Windows window? (This is the part I cringe
at -- I'm _really_ not trying to ignite a holy war here.)

Thanks for any pointers...

--wpd

TkCanvas is very good for that.

You can use it as a library, but what I've found useful recently is to
isolate the vector drawing and user interaction (select, drag, drop,
pan, zoom) in a separate process. This permits using it from simulink,
for example.

http://path.berkeley.edu/~vjoel/vis/tkar/

There's a protocol for talking to tkar, documented in the above.
 
P

Patrick Doyle

Thanks.
I'll take a look at that.

It's funny you should mention simulink -- I meant to add to my
original post that I was hoping to find something that provided
similar capabilities (zoom, aspect ratio control, and auto scale, in
particular) as are provided by the plotting capabilities of MATLAB.

Basically, I would like to plot some shapes I've drawn in a Ruby
program and to be able to zoom in and out to see more or less detail.
My current "simplest, because I know exactly how to do it, but
stupidly complex" plan is to dump the data to a file which I would
read and plot from a MATLAB script.

I'm hoping to find a more elegant solution than that, and to add that
capability to my bag o' tricks.

I'll try talking to your Tkar process. I don't need the animation
capabilities you provide, but if I can draw my lines, arcs, and
polygons, and I can zoom in and out of the drawn figure, then I can
check this box off and move on to the next problem.

--wpd
 
A

Axel Etzold

-------- Original-Nachricht --------
Datum: Fri, 15 Aug 2008 21:01:02 +0900
Von: "Patrick Doyle" <[email protected]>
An: (e-mail address removed)
Betreff: Re: vector graphics library with pan and zoom
Thanks.
I'll take a look at that.

It's funny you should mention simulink -- I meant to add to my
original post that I was hoping to find something that provided
similar capabilities (zoom, aspect ratio control, and auto scale, in
particular) as are provided by the plotting capabilities of MATLAB.

Basically, I would like to plot some shapes I've drawn in a Ruby
program and to be able to zoom in and out to see more or less detail.
My current "simplest, because I know exactly how to do it, but
stupidly complex" plan is to dump the data to a file which I would
read and plot from a MATLAB script.

I'm hoping to find a more elegant solution than that, and to add that
capability to my bag o' tricks.

I'll try talking to your Tkar process. I don't need the animation
capabilities you provide, but if I can draw my lines, arcs, and
polygons, and I can zoom in and out of the drawn figure, then I can
check this box off and move on to the next problem.

--wpd

Dear Patrick,

scalable vector graphics can be created using the Processing language :

http://processing.org/

There are Ruby bindings for it by _why:

http://the-shoebox.org/apps/44

Also, you might like RMagick:

http://rmagick.rubyforge.org/portfolio3.html

Best regards,

Axel
 
P

Patrick Doyle

Dear Patrick,
scalable vector graphics can be created using the Processing language :

http://processing.org/

There are Ruby bindings for it by _why:

http://the-shoebox.org/apps/44
Thank you. I'll take a look at that.
Unfortunately, it appears that RMagick doesn't appear to be able to
display on a Windows platform. (I could generate the .gif file in the
example fine, but it seemed like it really wanted to talk to an X
server to display something on the screen.)

--wpd
 
A

Axel Etzold

Unfortunately, it appears that RMagick doesn't appear to be able to
display on a Windows platform. (I could generate the .gif file in the
example fine, but it seemed like it really wanted to talk to an X
server to display something on the screen.)

--wpd

Dear Patrick,

you're right. Tim Hunter, the developer of RMagick, says so somewhere....
I'm using Linux mostly, so I tend to forget about Windows specificities. However, you might be able
to combine a gif created by RMagick with a display software on Windows,
even though that's less elegant ...


Best regards,

Axel
 
A

Axel Etzold

-------- Original-Nachricht --------
Datum: Sat, 16 Aug 2008 06:54:15 +0900
Von: "Axel Etzold" <[email protected]>
An: (e-mail address removed)
Betreff: Re: vector graphics library with pan and zoom

Dear Patrick,

you're right. Tim Hunter, the developer of RMagick, says so somewhere....
I'm using Linux mostly, so I tend to forget about Windows specificities.
However, you might be able
to combine a gif created by RMagick with a display software on Windows,
even though that's less elegant ...

This could be a solution that works on Windows together with RMagick:

http://cairographics.org/
http://cairographics.org/rcairo/

Best regards,

Axel
 
J

Joel VanderWerf

Patrick said:
It's funny you should mention simulink -- I meant to add to my
original post that I was hoping to find something that provided
similar capabilities (zoom, aspect ratio control, and auto scale, in
particular) as are provided by the plotting capabilities of MATLAB.

I've never tried using it directly from MATLAB, as opposed to simulink.
The simulink dir (http://path.berkeley.edu/~vjoel/vis/tkar/simulink/)
contains a zip of the files that build the simulink block, including
tkar.c which starts the external process and translates simulink port
data to winsock socket comm. (Yeah, windows--this was used as part of a
project for general motors, which is slowly discovering linux). This
file builds with the MATLAB mex compiler, and it might be a starting
point to adapt it as a matlab extension.
 
P

Patrick Doyle

Hi Joel,
Thanks for the tip. However, I'm not planning on interfacing Tkar to
MATLAB, I just mentioned MATLAB because I am quite enamoured of the
visualization capabilities provided by the "plot" command in MATLAB,
and was hoping to find something of a similar nature I could access
from a Ruby script. Thus far, I have found (or, more accurately, been
shown -- by you) Tkar, which provides the pan and zoom capability I
desire. I have also found rgplot, which provides an interface to
gnuplot.

For the ridiculously large amount of data I want to plot, I have found
TKar to be too slow for my needs (taking 20 minutes to plot a single
data set). gnuplot can handle that amount of data easily, but the
pipe between ruby and gnuplot seems to overflow as the data are
written. (I found a description very similar to the problem I have
observed on an Octave mailing list. Unfortunately, I have misplaced
that page at the moment).

So, right now I am looking at 4 options:
1) Read through your Tkar code enough to extract out the code that
plots lines and arcs on a zoomable, pan-able canvas and integrate that
with my code.

2) Find that darn web page again, verify that Ruby has the same issue
as Octave and, hopefully, can be fixed by the same patch proposed, and
submit a patch against Ruby to fix that.

3) Give up on plotting altogether.

4) Dump my data to a file readable and plottable by MATLAB and use
MATLAB to visualize my data.

--wpd
 
C

Charles Oliver Nutter

Patrick said:
Hello,
I'm not trying to open a debate about which GUI library is the best.
I would just like a pointer to a graphics library I can use to draw
some vector graphics (lines, arcs, circles, polygons, possibly filled
polygons, etc...) which would be presented to a Windows user in a
window which (s)he could pan and zoom in and out.

Does anybody know if such a beast exists?

If not, can anybody point me at the easiest way to get something close to that?

If not, can anybody point me at the easiest way to get any sort of
vector graphics drawn in a Windows window? (This is the part I cringe
at -- I'm _really_ not trying to ignite a holy war here.)

Batik in JRuby?

- Charlie
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,754
Messages
2,569,528
Members
45,000
Latest member
MurrayKeync

Latest Threads

Top