Convert two B-splines into one?

976 Views Asked by At

Let's say I have two second-order, non-periodic B-splines which touch at one endpoint (that is, I have an array of control points, weights, and knots for each). My task is: can you make a single second-order, non-periodic B-spline which exactly matches the path of both curves?

If the two curves are discontinuous, the answer is trivially no.
If the two curves are G3 continuous, I believe the answer is yes (since the two cubic definitions match precisely at the endpoint).
If the two curves are G0- (position), G1- (tangent), or G2- (curvature) continuous, I'm not sure. It does seem like the answer should be yes, with the an appropriate number of knots added to the intersection point.

Assuming the answer is yes, what is the formula for the vector of knots and weights of the resulting spline?

This is a real problem, not an abstract curiosity. I'm a geometric novice who would be happy to simply be pointed to some literature that would help me derive the necessary equations myself.

1

There are 1 best solutions below

0
On BEST ANSWER

The answer is yes always (including when they are discontinuous).

First, shift the knots of the latter NURBS-curve such that the first one agrees with the last knot of the first NURBS-curve. Then insert the joining knot until it has full multiplicity (equal to spline order) in both of the NURBS-curves.

After that simply combine the vectors of coefficients, weights. Too combine the knots but take only the joining knot from one of the original knot sequences.