On Tue, Oct 21, 2008 at 3:05 PM, Jim Michaels <[EMAIL PROTECTED]> wrote:

Please send only plain-text mail to this list. HTML mail annoys people here.

> Akima spline curves give drawing freedom, at least some kind of
> interpolating spline curve where you can just simply lay the points down and
> the curve follows along the points - I have a hard time getting bezier
> curves to do what I want.  It's like Alice in wonderland using a flamingo
> for a mallet in a game of croquet. unweildly.
> Bezier Curves were introduced into Windows NT.  It seems like a lot of paint
> programs began including Bezier Curves as a drawing method after that.
> They should have also introduced Akima spline curves into Windows. I am not
> saying take Bezier curves out - I am saying Add Akima Spline curves, or the
> bettered (modified) version of Akima Spline curves that doesn't react as
> much.  At least some type of interpolating spline curve where you just lay
> the points down and the curve follows the points.
> Akima spline curves are cool.  just put points along where you want the
> curve. simple.  you just need more points around sharp edges, or you get a
> "ringing" effect around that area. (See discussion and visuals link).
> part of the challenge of using Akima spline curves is that the first 2 data
> points must be faked or dropped.  same goes with the last data point.  this
> can be taken care of with some simple engineering tricks.
> http://en.wikipedia.org/wiki/Spline_(mathematics)
> Wikipedia article on Spline curves (mathematics). This does not cover the
> Akima Spline, which
> keeps its curve along the data points rather than just near it like a
> B-spline curve does.
> http://www.cse.unsw.edu.au/~lambert/splines/
> demonstration of the various curve types in action. (requires Java) play
> with the spline curve for
> a while (delete the existing points other than 0 first to get started)
> http://demonstrations.wolfram.com/BSplineCurveWithKnots/
> B-Spline curve with Knots (can be active demo)
> GNU Scientific Library Reference Manual
> http://www.network-theory.co.uk/docs/gslref/InterpolationTypes.html
> book - has Akima Spline &amp; Cubic Spline. See also
> http://www.gnu.org/software/gsl/manual/html_node/Interpolation-Types.html
> GNU Manual
> http://www.iop.org/EJ/abstract/0031-9155/18/4/306
> PDF file from medical site on akima and spline methods and its associated
> errors. Recommendations
> for fixing the significant overshoot on abrupt changes, and suggestion to
> use more closely spaced
> points around those regions. must purchase.
> http://portal.acm.org/citation.cfm?id=116810
> The Akima Univariate Interpolation Method (spline) article from the acm. by
> Hiroshi Akima.
> requires web account and probably money to buy the PDF article.
> http://www.iue.tuwien.ac.at/phd/rottinger/node60.html
> Equations for Akima Spline
> http://www.alglib.net/interpolation/spline3.phpdiscussion and visuals of
> Akima Spline and its
> drawbacks. also has source code in C++, C#, Delphi, VB6, Zonnon.
> http://www.sciencedirect.com/science?_ob=ArticleURL&_udi=B6TYG-414N645-
> 2&_user=10&_rdoc=1&_fmt=&_orig=search&_sort=d&view=c&_acct=C000050221&_version=1&_urlVersion=0&_us
> erid=10&md5=17dccffcfa40e5b420c7c377fc24b5f7
> pay-for article on some sort of improved-smoothness spline. Shape of data is
> preserved.
> http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=1814&objectType=file
> MATLAB model.
> Jim Michaels
> http://JesusnJim.com

I looked through all your links, and while Akima splines seem
interesting, I think we would need some visual demonstration of their
performance in the way they'd be used in GIMP (most likely, contour
tracing to 'cut out' objects), before we could agree that they were an
appropriate thing to add. We would also need to be absolutely sure
that they are unencumbered by patents.

Personally, I think if we were to support a 'on-points-only' type of
spline, Cornu (aka clothoid) splines would be a better choice,
especially as they are already implemented in Inkscape and FontForge,
and a free software affiliated person (Raph Levien) owns the patent
(pending?) on it and has implemented a GPL library (libspiro) to
assist in their usage. They also seem to be more predictable than
Akima splines. However they do require you to mark corners explicitly.

provides an example of how they work and look (video of manipulating
Cornu splines in Inkscape)

Their effectiveness can be checked by (with a development version of Inkscape)
 1. Open inkscape and import a bitmap to trace
 2. Roughly outline the object with a polygonal stroke
 3. Using node editing, select all nodes and set them smooth.
 4. Add the 'spiro' live effect to the path.
 5. Add nodes or set segments linear, as needed, until you are satisfied.

I've just done that, for cutting out pelicans from a photo. my initial
polygonal sketch had 67 nodes. The final shape had 96 nodes, so I
needed to add 29 nodes (43%). I'll look into showing my results here.
Gimp-developer mailing list

Reply via email to