How Do Knots Influence a B-Spline Curve?

  • Context: Graduate 
  • Thread starter Thread starter Danh860
  • Start date Start date
Click For Summary
SUMMARY

This discussion focuses on the influence of knots on B-spline curves, specifically in the context of constructing basis functions using VBA. The consensus is that cubic polynomials are preferable for most applications, allowing for effective control over curve continuity. To ensure the curve passes through a specific control point while maintaining C[1] continuity, users should align control points to constrain tangents and curvatures appropriately. The recommended approach involves using cubic spline segments and ensuring that tangents between adjacent segments are equal for higher continuity.

PREREQUISITES
  • Understanding of B-spline curves and their properties
  • Familiarity with VBA programming for spline construction
  • Knowledge of cubic polynomial functions and their applications in spline design
  • Concept of continuity types (C0, C1) in spline mathematics
NEXT STEPS
  • Research cubic spline segment construction techniques
  • Learn about controlling tangents and curvatures in B-splines
  • Explore knot sequences and their impact on spline behavior
  • Investigate the implementation of NURBS for advanced spline modeling
USEFUL FOR

Mathematicians, computer graphics developers, and engineers involved in spline modeling and curve design will benefit from this discussion.

Danh860
Messages
1
Reaction score
0
Hi,

I am working on a a project that involves the use of B-splines. Using the information from this informative http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/B-spline/bspline-curve-prop.html" I have managed to write up a simple script in VBA that allows me to construct the basis functions for a given sequence of knots and then apply this to a set of control points.

Whilst the code works and I can generate splines, I still don't have a full understanding as to how the knots influence the curve - Ultimately, I need the curve to pass through a specific control point (e.g P[k]) and be influenced by a couple of control points before and after P[k]. Additionally, the curve needs to be at least C[1] continuous at this particular control point.

Can anyone suggest the knot sequence and degree of curve that I should be using?

Many thanks,
Dan
 
Last edited by a moderator:
Mathematics news on Phys.org
In most applications cubic polynomials are used.
 
You would be better using a sequence of spline segments, not one high-order spline.

The end points of each segment lie on the curve. The second and second-to-last control points of each segment define the tangent direction at the end of the curve, so you can get continuity slope by constraining those control points to lie on a straight line (i.e. the tangent line to the curve), and you can control the continuity of curvature by constraining the distance of those control points from the end points.

For many applications cubic spline segments (constraining the slopes but not worrying about the curvature) is a practical method, but you can use higher order segments, and/or different orders in different segments, if you want to.
 
Like mathman said, you're better of using cubic polynomials.

What you can do is use cubic polynomials and maintain the correct continuity for joining splines. From memory you automatically have C0 continuity, but you want to maintain higher continuity between splines: to do this you want the tangent between points 2 and 3 (point 0 being the first point) and 3 and 4 have the same value. That is tangent(2,3) = tangent(3,4).

Its been a while since I've looked at NURBS though, so I'm not confident I can help you there.
 

Similar threads

  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 1 ·
Replies
1
Views
12K
  • · Replies 3 ·
Replies
3
Views
6K
  • · Replies 10 ·
Replies
10
Views
18K
  • · Replies 11 ·
Replies
11
Views
6K
  • · Replies 3 ·
Replies
3
Views
3K
  • · Replies 39 ·
2
Replies
39
Views
5K
  • · Replies 8 ·
Replies
8
Views
4K
Replies
12
Views
2K