Skip navigation
Currently Being Moderated

Akima spline curves for vector graphics

Oct 17, 2008 2:20 PM

Akima spline curves give drawing freedom - I can't get 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 and all windows NT family products after that.

It soon followed that all paint programs began including Bezier Curves as a drawing method. Big mistake. They should have 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.

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.h tml
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.php
discussion 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?object Id=1814&objectType=file
MATLAB model.
 
Replies
  • Currently Being Moderated
    Oct 18, 2008 9:57 AM   in reply to jmichae1
    All the samples I saw can easily be accomplished with Bezier curves.
     
    |
    Mark as:
  • Currently Being Moderated
    Oct 18, 2008 12:56 PM   in reply to jmichae1
    Jim,

    Other drawing programs have other spline tools in addition to the ubiquitous Bezier tool.

    FreeHand's Bezigon tool draws Beziers, but does so with an interface that lets you just click where you want points on the path, and then auto-conforms the curve points that you place according to where you place the next point, yielding results much like the Java applet you linked to.

    Canvas's Auto Curve tool behaves almost exactly like the Java applet.

    Although I'm not opposed to a drawing program having multiple interfaces for creating spline curves, I have no desire for them. I never use the Bezigon tool in FH, and never use the Auto Curve tool in Canvas. I view them both as accommodations to beginners who initially think Bezier tools are unapproachable. I dare say the vast majority of proficient vector illustrators would agree. (No offense intended to any experienced users who find them useful.)

    So while I can't say whether Canvas's Auto Curve tool actually uses the Akima equation you seem to be fond of, it's interface and behavior seems identical to what you seem to desire, and in that respect is therefore nothing new to drawing programs.

    As far as Illustrator goes, I'd much rather development time be dedicated to far more fundamental and universally important things that it still lacks relative to the other mainstream drawing programs.

    Illustrator still has no decent cutting tool. No user-defined drawing scales. No dimension tools. No connector tools. Poor snap behavior. Too limited value entry fields. Excruciating text performance. Bizarre Character and Paragraph style behaviors. No geometric shape primitives. No proper radius/chamfer/fillet feature. No joining of multiple paths at once. An old-fashioned modal-dialog-heavy and poorly-organized and too-cluttered interface. The list is quite long; and on my list (for whatever it's worth), alternate interfaces for interactively drawing spline curves point-by-point does not even appear.

    The Bezier curve is inherent to PostScript drawing programs, and the conventional click-or-clickdrag interface for them is practically universal. It is fluid, accurate, supple, and economical in the number of points it creates. It dominates for good reason. (That's not to say AI's particular implementation of it couldn't be better; it could. FreeHand's is better.)

    So while I'm all for truly valuable "new wrinkles," this is one I don't see any practical need for.

    What actual benefit do you see in it?

    JET
     
    |
    Mark as:
  • Currently Being Moderated
    May 13, 2012 12:46 PM   in reply to JETalmage

    I agree.

     

    I have been asking for this *^$%# feature forever.

     

    I've been using Adobe Illustrator for over a year and I still cannot draw the same things which I can draw easily when I use Microsoft Expression Design and the B-Spline.

     

    However I use a Mac, and I don't want to boot parallels every time I need to draw something.

     

    For example... Try to draw a pear using the Adobe method versus the Microsoft method. It's *&$#%* impossible.

     

    You would think a thousands of dollars program would include every *&%^*#$ possible spline tool known to man. Yet they include the most obtuse and impossible way of drawing curves. It's like the central core of what a vector graphics program aught to do, however they don't even support the form of curve supported in FREE software.

     

    Then when you ask for it, they say that their tool is more powerful. Give me a *&#%& break. I have been trying to use it for over a year. You don't know what powerful is if you can't do *&#%& with it.

     
    |
    Mark as:
  • Currently Being Moderated
    May 13, 2012 5:39 PM   in reply to jmichae1

    jmichae1 wrote:

     

    Bezier Curves were introduced into Windows NT and all windows NT family products after that.

     

    Provable false.

     

    Adobe Illustrator was specifically designed to produce PostScript(TM) output from its very first version; and PostScript exclusively uses Bezier curves.

     

    In addition, Adobe Illustrator v1.0 preceded Windows NT by about 7 years.

     
    |
    Mark as:

More Like This

  • Retrieving data ...

Bookmarked By (0)