5

I was following a tutorial about bezier curves and the explanation behind it. At the same time was reproducing some of the learning on Illustrator.

But there was a part of the tutorial where you could add 3 or more control points and control a single line with that, here is an example:

enter image description here

With C1, C2 and C3 (control points or handles) you could control the line from A to B.

Now, in illustrator this is not possible, the only way to create a figure like that is using two lines. From A to the green dot and another line from the green dot to B.

Is there a reason behind why I can't add more than two controls or handles to a line, or can I? I'm missing something? Is it just to complex or resources intensive to have 3 or more controls per line? Also why vector programs choose to have controls the way the are in illustrator instead of the way pictured above, looks easier to modify lines that way.

Here is another example without the explanatory intermedian lines: enter image description here

Also the wikipedia article about bezier curves uses this method.

5

tldr

No, because of standards.

Not out of the box

Adobe and PostScript simply use cubic Béziers. A cubic Bézier has 4 points. The decision is arbitrary and was done ages ago. The underlying vector specifications PostScript, PDF and SVG only natively support 2 (square) and 3 (cubic) order Béziers. So any export to these engines would need to change your spline and approximate them by splitting your curve up.

Designers simply had to choose something, back in late 1970's and early 80's computational power was not so easy to come by. While you at it you could use rational B-Splines instead (such as NURBS). B-splines are a parallel invention of even more general curves. Engineers choose to use NURBS instead but that's mostly extra overhead just so you can be pedantic about perfect circles (at the cost of more complex implementation details). In practice most people use either cubic Béziers or multi span cubic B-splines. Its very rare to see anybody use higher order splines although I certainly use 5 order curves occasionally*.

Why cubic? Well it is computationally heavier to build the higher orders, but really the cubic has properties that are linked to the limit of visual processing of humans. So unless you engineer something beyond visual there is little benefit continuity wise to have more derivable levels. Simply a cubic Bézier is the simplest that does the job well in surface cases.

But yes you can do this in most CAD applications out there*. Things that do not build upon the printer languages do not have this limitation. (you could also make a primitive that is converted on the fly), you can modify the demo using jsxgraph to do a fourth order clamped B-spline. If you remove two points its same as a fourth order Bézier.

bezier emulation with jxgraph

Image 1: Using jxgrapgh to emulate a 4th order Bézier with B-Splines of 4th order.

* Many times one would avoid the even order curves and use the odd ones instead, many apps will limit you to 3, 5, 7, 9, (11). Its rare to see orders higher than 9. Also a B-spline with full weighted endpoints (clamped) with degree+1 points is a Bézier. There is lot to be said about this subject discussion better suited for CG.SE

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.