» Curves
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

Curves

In mathematics a Curve is "a line that does not need to be straight". With that definition a large number of different curves exist each of which can be described by a mathematical formula.

Different mathematical curves

In computer graphics we're most interested in curves that can be described by mathematical formulas that are called polynomial functions. In order to be able to draw arbitrarily curved lines often multiple such curve-segments are combined to a Spline. The term "Spline" originates from an old draftsmen tool called a Flat Spline.

Curves that are piecewise defined by polynomial functions are called Splines

There are many different types of splines (hermite, bézier, catmull-rom, b-spline,..). but they all share the following key properties:

  • they are continuous at the Knots
  • Control Points influence their shape
Splines with their segments, control points and knots

Bézier Spline

Quadratic Bézier Curve with its Control Point

Cubic Bézier Curve with its two Control Points

The most popular Bézier curves are quadratic and cubic in nature as higher degree curves are expensive to draw, evaluate and not so intuitive to handle.

Characteristics

  • they cannot exactly describe circles and ellipses
  • they are a special cases of B-Spline
Related nodes

BezierEditor (2d)
BezierEditor (3d)
See also nodes from the 'BezierSegment' category.

BezierEditor nodes are operating with cubic Bézier splines.

See also:

B-Spline

An open B-Spline does not go through its control points

A clamped B-Spline which at least goes through its first and last control point

B-Spline is short for "basis spline".

Characteristics

  • they do not go through their control points
  • they have C2 continuity!
  • they are a special case of NURBS
  • in order to have a sharp corner in a B-Spline it takes three control-points at the same position
  • it is hard to insert a control point without changing the curve
  • it is hard to make a straight line
  • depending on its degree, changing one point changes large parts of the curve
  • they cannot exactly describe circles and ellipses.

In order to make it more intuitive to handle a B-Spline can also be constructed in a way it at least goes through its first and last control point.

Related nodes

B-Spline (Value)
B-Spline (2d)
B-Spline (3d)
B-Spline (3d Wryly)

See also:

NURBS

A NURBS with its weighted control points

NURBS (short for "non uniform rational b-spline") are essentially B-Splines with a weight for each control point. If all its weights equal 1 the NURBS is a B-Spline.

  • NURBS generalizes both B-splines and Bézier curves
  • they can accurately represent circles and ellipses
Related nodes

NURBS (2d)
NURBS (3d)

See also:


Sources

anonymous user login

Shoutbox

~4d ago

~7d ago

joreg: The Winter Season of vvvv workshops is now over but all recordings are still available for purchase: https://thenodeinstitute.org/ws23-vvvv-intermediates/

~14d ago

schlonzo: Love the new drag and drop functionality for links in latest previews!

~22d ago

joreg: Workshop on 29 02: Create Sequencers and Precise Clock Based Tools. Signup here: https://thenodeinstitute.org/courses/ws23-vvvv-08-create-sequencers-and-precise-clock-based-tools-in-vvvv-gamma/

~29d ago

joreg: Workshop on 22 02: Unlocking Shader Artistry: A Journey through ‘The Book of Shaders’ with FUSE. Signup here: https://thenodeinstitute.org/courses/ws23-vvvv-12-book-of-shaders/

~1mth ago

joreg: Talk and Workshop on February 15 & 16 in Frankfurt: https://visualprogramming.net/blog/vvvv-at-node-code-frankfurt/

~1mth ago

woei: @Joanie_AntiVJ: think so, looks doable

~1mth ago

xd_nitro: Anyone remember who increased projector brightness by removing some components that product the color?

~1mth ago

Joanie_AntiVJ: This looks super interesting (vectors over network) would anyone here know how to implement this in beta? https://github.com/madmappersoftware/Ponk