RSS/Atom feed Twitter
Site is read-only, email is disabled

new feature request - gimp

This discussion is connected to the gimp-developer-list.gnome.org mailing list which is provided by the GIMP developers and not related to gimpusers.com.

This is a read-only list on gimpusers.com so this discussion thread is read-only, too.

7 of 7 messages available
Toggle history

Please log in to manage your subscriptions.

new feature request - gimp Jim Michaels 21 Oct 06:35
  new feature request - gimp Sven Neumann 21 Oct 08:09
  new feature request - gimp David Gowers 21 Oct 08:55
   new feature request - gimp Alexandre Prokoudine 21 Oct 14:39
  new feature request - gimp Simon Budig 21 Oct 15:00
new feature request - gimp Jim Michaels 22 Oct 23:06
  new feature request - gimp Chris Mohler 22 Oct 23:11
Jim Michaels
2008-10-21 06:35:51 UTC (over 16 years ago)

new feature request - gimp

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 & 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
jmichae3@yahoo.com
http://JesusnJim.com

___

Sven Neumann
2008-10-21 08:09:32 UTC (over 16 years ago)

new feature request - gimp

Hi,

On Mon, 2008-10-20 at 21:35 -0700, Jim Michaels wrote:

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

How do these compare to Spiro curves (http://libspiro.sourceforge.net/)?

As far as I can see, Spiro curves have similar behavior, but would probably be easier to implement. In fact, there is already code for using Spiro curves in GEGL.

Sven

David Gowers
2008-10-21 08:55:36 UTC (over 16 years ago)

new feature request - gimp

Hi,

On Tue, Oct 21, 2008 at 3:05 PM, Jim Michaels 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 & 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
jmichae3@yahoo.com
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.

http://www.youtube.com/watch?v=3OaLZuFZxdk 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.

Alexandre Prokoudine
2008-10-21 14:39:05 UTC (over 16 years ago)

new feature request - gimp

On Tue, Oct 21, 2008 at 10:55 AM, David Gowers wrote:

4. Add the 'spiro' live effect to the path.

In fact, you can just draw Spiro curves with Pen or Pencil from the very beginning ;-)

Alexandre

Simon Budig
2008-10-21 15:00:29 UTC (over 16 years ago)

new feature request - gimp

Jim Michaels (jmichae3@yahoo.com) wrote:

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.

Oh well, that all kind of depends on how you implement it. In the Curves dialog we also use bezier curves and you don't really notice it, because the control handles get determined automatically.

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.

Bezier Curves have a lot of (computationally) nice properties, making it easy to implement it. Plus it really is nice how you can control them in quite detail.

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).

Yeah, just laying down nodes is a cool way to edit curves. From your links it seems that Akima-Splines have a better locality and are more stable than e.g. Spiro curves.

The thing is that there are dozends of interpolation types that have this "laying down nodes" editing property and it is hard to put a finger on which one to choose. We do know that spiro curves have been developed to create visually appealing curves by requiring certain smoothness properties. That makes them an appealing choice for design oriented programs. The instability of spiros however might kind of hamper their adoption for real use though.

Do you know of any study on how suitable Akima splines are for graphic design? It would be nice to have a comparison of different spline types for this kind of application. I believe the criteria you mentioned above (locality, interpolates all control points) are not necessarily enough to judge on that.

Bye,
Simon

Jim Michaels
2008-10-22 23:06:11 UTC (over 16 years ago)

new feature request - gimp

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.

http://www.cse.unsw.edu.au/~lambert/splines/ shows the different splines in action. akima is not specifically identified, but related cubic interpolation splines are done using java graphics.
Cool. Whatever works best. I just want to be able to lay points down and have the curve follow thru the points. I looked at http://sourceforge.net/projects/libspiro/ which is a clothoid and I was impressed with the image, much more so than with akima, which is really troubled around corners (maybe all cubic splines are like that, I don't know). And the clothoid can be converted to bezier.

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

here.

sorry, my primary email is html (yahoo) email. yahoo mail has no options to send as text (no yahoo there).


Jim Michaels
jmichae3@yahoo.com
http://JesusnJim.com

Chris Mohler
2008-10-22 23:11:07 UTC (over 16 years ago)

new feature request - gimp

On Wed, Oct 22, 2008 at 4:06 PM, Jim Michaels wrote: [...]

sorry, my primary email is html (yahoo) email. yahoo mail has no options to send as text (no yahoo there).

From: http://email.about.com/od/yahoomailtips/qt/et_plain_text.htm

To compose a text-only message in Yahoo! Mail:

* Click Plain Text at the end of the Subject: line while composing the message.
* Click OK.

You can switch back to rich-text formatting by following the Rich Text link in the same spot.

HTH,
Chris