**December 16, 2006 10:03 PM CST**by

**psilord**in category

**Useless Ideas**

## A Spline in My Foot

I have always liked to concept of splines. I think they are one of the coolest forms of math simply because they are so generally useful and the pretty picture coefficient for them is quite high.

A while ago, I had used variants of them for a certain type of interpolation related to interpolating between regions of stability in chaotic functions. I needed an interpolation such that in between the regions there was good behavior instead of the wild flailing of pure chaos itself. Here is an example of a variant I made.

You can find much better descriptions on the web about Bezier curves than I am going to give here. Suffice to say, I will simply write the two equations of note, and move on. The first one produces a collection of functions called the Bernstein function:

The next one is the Bezier curve function itself in one dimension:

The Bezier function takes a set of control points which dictate the
order of the curve(quadratic, cubic, quartic, etc) depending how many
control points there are. They are specified in the P_{i}
variable of the above equation. This is the part of the equation with
which we are going to have fun. Let's replace the control point with a
function which produces control points instead. That's far more fun.

The variable **s** needs a little bit of
explanation. This variable is kind of like a parametric variable
for **F(s)**_{i}. **F** must
produce a control point of some arbitrary dimensionality according
to the designer's wishes for the dimensionality of the curve. For the
purposes of this discussion today, we will assume **F**
produces 3 dimensional control points.

Some examples of **F** could be:

An interesting thing to see is that in this case, **s**
is used as the domain for the little function in the y axis of the
generated control point. So, all three of these curves act like they
have been created in an x,y plane, and the z component is for placement
of these individual xy planes in "parallel" to each other. Of course,
this is quite a restrictive use of these functions, but it doesn't
have to be that way. It just happens to be for this example. Also,
there may be many more than 3 functions, which just increase the
order of the curve.

I bet you are wondering what something like that would look like if
a computer program drew it. Fear not, instead of doing something
useful with my life like making money or helping the sick, I've
written one so you can see what kind of patch surface the above
example would create in 3d given varying values of **s**
and **t**. The white lines are the individual curves
as **t** varies, and each white line is on account
of **s** varying. The green dots are locations on the
"control functions", and the green lines are visualization lines
to show the typical lines associated with the control points of an
individual curve. The rectangular box in the middle bottom is a scale
that goes from -2*PI to 2*PI in the x axis, and -1 to 1 in the x and y
axes. The coordinate system is left to right is negative to positive
x axis, bottom to top is negative to positive y axis, and behind of
screen to in front screen is negative to positive z axis. The various
functions have been scaled a bit to make them pretty (which are not
reflected in the above equations).

Interesting no? There are some things I haven't yet fully figured
out about the surface generated using this method. For example, what
kind of a surface is it? Is it continuous, smooth, differentiable? To
what extent? An awesome example to put light to these questions comes
if you replace **F**_{2} with **(x,
tan(x), 0)**, and **F**_{1},
**F**_{3} are simply straight horizontal lines
in the x,y plane. Of course, there are some dirty scalings going on,
but I've left them out (also the green visualization lines) of the
examples because they clutter up the equations. So, here is what a
stranger patch may look like:

See what I mean about characterizing what kinds of patches these
are? They **look** like they should be integrable and have
partial differentials which may describe all sorts of good things like
slopes and gradients and whatnot, but due to the tainting of the Bezier
method, that might not be true. This might seem like a limitation, but
I don't think it is. For example, **F** may be anything,
like an iterated function system, a set of differential equations,
other parametric curves, normal functions....

Of course, the next step would be to design some splines to interpolate
**through** each function's control point given some
more information like partial differentials at said control point,
etc, etc, etc. This would make it very interesting to have, say,
a sin wave for the first function, an iterated function converging
to a fern, and a quadratic equation for the third equation. You could
have a curve interpolate through each one, which might be interesting
for a lot of reasons, most of them pretty to look at. As for whether
or not that would form a surface, hmm....

I haven't gotten to that part yet. Might never. Depends on how bored I am.

End of Line.