[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Plotting using Symbols (Object Graphics only)
- Subject: Re: Plotting using Symbols (Object Graphics only)
- From: davidf(at)dfanning.com (David Fanning)
- Date: Wed, 12 May 1999 10:48:23 -0600
- Newsgroups: comp.lang.idl-pvwave
- Organization: Fanning Software Consulting
- References: <7h9i4r$56s$1@nnrp1.deja.com>
- Xref: news.doit.wisc.edu comp.lang.idl-pvwave:14709
Hrishikesh P. Gadagkar (gadagkar@my-dejanews.com) writes:
> I wrote an application that contains a scene object consisting of 2
> views. Each view displays a 2D plot drawn with lines/symbols. The
> application was written by combining the sel_obj.pro example from IDL
> and xsurface.pro from David Fanning. For some reason the symbols get
> distorted if not scaled properly. What is the best way to rescale the
> symbols so that they would look the same all the time? The scaling that
> I have used works better for one plot only. Both plots have the same
> number of data points but min/max range is slightly different.
I'm embarrassed to say that even though I had written and
published a program (XPLOT) that supposedly used symbols,
I had never tested it and found (much to my chagrin) that
it didn't work because I didn't even *realize* you had
to size symbols. Sigh... Live and learn.
Anyway, in fooling around with it, I came up with a
formula for setting the symbol size that seems to work
reasonably well under all the conditions in which I have
tested it.
The key, it seems to me, is to make the symbols a
consistent size based upon the actual length of the
axes. So, after I get the axes ranges back from the
Axis objects, I find that a value of 0.015 times
the axis range gives a nice symbol size. The advantage
of this is the the symbols don't appear to be
distorted in shape. The code looks something like this:
xAxis->GetProperty, CRange=xrange
yAxis->GetProperty, CRange=yrange
; Size the symbols appropriately for the plot.
xSymSize = (xrange[1] - xrange[0]) * 0.015
ySymSize = (yrange[1] - yrange[0]) * 0.015
thisSymbol->SetProperty, Size=[xSymSize, ySymSize]
You can find an updated XPLOT on my web page with the
ability to change and resize symbols:
http://www.dfanning.com/programs/xplot.pro
Cheers,
David
--
David Fanning, Ph.D.
Fanning Software Consulting
Phone: 970-221-0438 E-Mail: davidf@dfanning.com
Coyote's Guide to IDL Programming: http://www.dfanning.com/
Toll-Free IDL Book Orders: 1-888-461-0155