Geometric modeling curves

Analytic curves

Analytically  we can define curve in 2D :

  • implicitly - F(x,y) = 0
  • explicitly - y = f(x)
  • parametric - x = x(t); y = y(t)

Example: Let's have a circle with centre in dot S[0,0] and radius r.

  • Implicitly  (x2) + (y2) = r2
  • Explicitly  y = sqrt(r2-x2)
  • Parametric x = cos t; y = sin t for t ∈<0,2p>


Applet Select one point on circle.

Interpolation curves

Construction of an interpolative curve is a construction of a curve that  crosses given nodal dots. In numerical mathematics interpolations through the medium of polynoms are used to calculate a certain integral. In computer graphics, interpolation is used to draw a curve for given instruction dots crossed by theinterpolative curve .     Problem is how to define parameter value, for which we will obtain given operative (determining) dot of interpolative curve. The most known interpolative curve is Ferguson's cubic.  The name cubic is used for curves of the 3rd grade.

Ferguson's cubic

This curve was established in year 1964 J.C. Ferguson. It is determined by two operative dots V1 and V2 and values of vectors in these dots v1 and v2. Curve starts in dot V1 and ends in dot V2. The form of curve is determined by direction and size of  vectors v1 and v2. If both vectors are zero, then resultant curve will be line. Ferguson's cubic can be written as

          |  2 -2  1  1 | | V1 |
B(t)= T . | -3  3 -2 -1 |.| V2 |,
          |  0  0  1  0 | | v1 |
          |  1  0  0  0 | | v2 |
where T = | t3, t2, t, 1 |, t ∈ <0,1>. By this modification we receive

    B(t) = V1*F1(t) + V2*F2(t) + v 1*F3(t) + v2*F4(t), where
  • F1(t) = 2t3 - 3t2 +1
  • F2(t) = 2t3 + 3t2
  • F3(t) = t3  - 2t2 +t
  • F4(t) = t3  - t2.


Ferguson's cubic

Catmull-Rom Spline


Applet Catmull-Rom Spline. Create new points with mouse. You can move created points with mouse, delete created points - shift key + select point, add point between two points - key ctrl + select point. Also you can change color on right side. Author Zachar Martin

Source code

Aproximation curves

For aproximative curve we have given some dots, but mostly it need not cross them. Grounds of construction of such curves were build by Bezier and Casteljau in years 1959-62 and it lies in approximation of the given curve by means of operative polygon (broken line), which determines the resultant form of the curve.


Parabola is obviously given by two of its dots and by contact dotsdots in them.


For a line AC, where dot B ∈ AC is defined ratio (ABC) = (B-A)/(C-B).



Construction of a parabola

Let's assume that we have got given dots A, D and C and t ∈<0,1>. For dots E, B and F then it is valid : ratio (AED) = ratio (EBF) = ratio (DFC). Construction of a parabola lies in drawing a dot of parabola B with parameter r = t /(1-t).


1. computes the point E, F : 

     E : ratio(AED) = r ( <=> E = (1-t)*A + t*D )
     F : ratio(DFC) = r ( <=> F = (1-t)*D + t*C )

2. compute the point B :

     B : ratio(EBF) = r ( <=> B = (1-t)*E + t*F )

3. The point B is the parabola with the corresponding parameter t


Parabola. You can change parameter t with keys 1,2

Cubic Hermite spline


Making of an interpolation curve consist in construction of curve, which runs through given key points. The key points, placed by the artist, are used by the computer algorithm to form a smooth curve. The applet includes adding, deleting and moving of the key(control) points. Author Kováčik Alojz a Manduch Martin

Source code

Cardinal spline


Applet At the start, there will be by default a cardinal spline with five points drawn. You can remove a point by right clicking on it. Point can be added by clicking on the canvas. Points can be moved by dragging. A point can be added between two points by clicking with middle button. There will be also a slider to adjust the tension of the spline. By every edit the cardinal spline will be redrawn. There is a control panel on the right side of the panel, where one can set what to show on the screen. There is also some help present. By adding applet on site it can by adjusted by two parameters: showControls and showBezierVectors The values can be set to true or false. Parameter showControls is set by default to true and showBezierVectors is by default set to false. Author Chládek Michal

Source code