Next Challenge

“NURBS” and “Uniform-Non-Rational-B-Spline”

Although the major curve tool that we are using in most of modern CAD software is called NURBS (Non-Uniform Rational B-Spline), but many of you may not know only very few software publisher are really support the full version of NURBS. Most of the curve tools we are using today are actually “Uniform-Non-Rational-B-Spline”.

Ok, what is Uniform-Non-Rational-B-Spline, let’s say it is a subset of NURBS, or a simpler version of NURBS. If you really like to make things clear then please go check my Knots-Equation page again and replace those kn variables with 0,1,2..n by order then you get a Uniform B-Spline . For the Non-Rational part, just check the simplest Rational equation below and replace all the variables of wn with 1 then you get the simplest Non-Rational B-Spline equation or just an ordinary Bezier curve. Furthermore, if you want to clarify the relationship between knots and control-points of B-Spline then you should read my Knots-Equation one more time, which can give you a very clear picture about their math relationship.

Besides those complicated math definition about which one is subset and which one is superset, at least we have one good news here. All of the B-Spline, Basis-Spline, are actually a group of connected Bezier curve segments under certain math relationship. If you ignore their math relation temporarily then they are just a bunch Bezier curves connected with each other in one piece after another piece in order; and any Bezier curve segments that connected in one by one order, in Microsoft’s terminology is called poly-Bezier.

The final question is what is Bezier curve? My interpretation is this, the curve Mr. Bezier described with his parametric equation is just the Nature-Curve, which is actually the trajectory of a flying object that dragged by different forces. For example, if the dragging forces are two then you get a curve of degree 2, and 3 gives you a curve of degree 3; that’s it.

Next Challenge

As I am lucky that I have solved two puzzles of NURBS up to now, one is its intersection points between two objects and the second is the math relationship in between knots and control points. You may ask me what would be the next? As an ex-sales guy of CAD software, my answer is that the manual-operated-CAD tool will be replaced by the automatic-CAD tool, just like Google’s auto-pilot car. It is an un-beatable trend.

But before we really jump into the era of automatic-CAD, I believe that CAD drawing tool will be integrated with automatic-measuring device first. It is the reason why I wish my solution can be planted into graphic chips; also the reason why it is a necessary for human to solve the intervention problem in between two curved objects first. Because if we do not have such kind ability then our computer can only do the drawing job for us but without the auto-design ability; it means that all the computer drawing still heavily counting on the manual checking procedure.

Now, let’s get back to the curve’s next, I think the immediately next requirement will be automatic-curve-simulation and automatic-curve-optimization.

For the first part, the programs written by Mr. Oleg V. Polikarpotchkin and Mr. Peter Lee are the best way that I have seen so far, “Draw a Smooth Curve through a Set of 2D Points with Bezier Primitives” and “Draw Closed Smooth Curve with Bezier Spline”. My opinion is these two gentlemen indeed show me a bright way to go by using NURBS to simulate the data of unknown formula.

For the second item, auto-curve-optimization; may be someone else has the idea already or some young people willing to take the challenge. I just know, this challenge definitely would be conquered and it is just a question of soon or later?

Personally, I think our knowledge about curves is still very limited. For example, do you know in the article, “Draw a Smooth Curve through a Set of 2D Points with Bezier Primitives”, the authors are actually using the uniform b-spline to draw the smooth curve. Can we replace it with the non-uniform one? How to do it? I do not know the answer and you?

"Que sera, sera, whatever will be, will be. The future's not ours to see. Que sera, sera.”