Appendix B Surface Algorithms

This appendix describes the mathematical basis of the Maxsurf models, and will be of interest to users who wish to write software to recreate Maxsurf surfaces.

 

Maxsurf constructs its shapes using the Rational B-spline formulation as described by the IGES standard. Maxsurf uses a uniform knot vector. However, non-uniform knot vectors are permissible.

 

B-spline curves and surfaces are dependent on a set of basis functions, which define the influence of each control point at any given point on the curve. The basis functions are determined by a vector of knots T where T = {t0,...,ti,ti+1,...,tm} and m = number of control points + order of the curve. The parameter t varies from zero to n – k + 2. In general, the B-spline basis function on a curve of degree p (order k = p + 1) is given by

 

                            1 if ti £ t < ti+1 and ti < ti+1

     Ni,0((t) =

                            0 otherwise

 

     Ni,p(t) = t - ti   Ni,p-1(t)   +       ti+p+1 - t    Ni+1,p-1(t)                                

                             ti+p-ti                                                  ti+p+1 - ti+1                 assuming  0/0=0.

 

The elements of the open uniform knot vector, ti , are given by

     ti = 0                1 £ i £ k

     ti = i - k            k + 1 £  i  £ n + 1

     ti = n – k + 2    n + 2 £  i  £ n + k + 1

 

where there are n+1 control points on the curve, and k  is the order of the curve      

(k = p + 1).

 

A rational B-spline surface is given by

 

                                        m        n

                                        S  S  Ni,p(u)  Nj,q(v)  Wij Pij

                                        i=0      j=0

     S(u,v) =           ______________________   _

                             m        n

                            S  S  Ni,p(u) Nj,q(v) Wij

                            i=0      j=0

 

where S(u,v) is a point on the B-spline surface at parametric coordinates u,v,

Ni,p(u) and Nj,q(v) are the B-spline basis functions, Wij  are the rational weighting values, and Pij are the control point positions.