Mathematical expressions are used to describe the shape of objects, and the mathematical description should be able to retain as many properties of the product shape as possible. Therefore, there are basic requirements for mathematical expressions, and the following two properties should be met [19]:

(1) Uniqueness

Uniqueness is the basic condition for mathematical expressions to describe the shape of objects. Uniqueness means that the object shape determined by the given limited information should be unique, and different object shapes cannot be obtained through the same information. From the perspective of mathematical equations, as long as the number of unknowns to be determined is the same as the number of equations given, the uniqueness requirement can be guaranteed. Curves expressed by parameters generally require certain additional conditions to meet the uniqueness requirements.

(2) Geometric invariance

Geometric invariance refers to the fact that when a mathematical expression expressing the shape of an object is obtained from a limited number of known data points, operations such as flipping, translation, and rotation are performed on these points under the premise that the relative positions of these points remain unchanged. It must satisfy that the shape of the object described by the mathematical expression obtained again is the same as the shape of the previous object. As shown in Fig. 1a, a unique parabola can be determined by \(\left( {0,0} \right),\left( {1,0.5} \right),\left( {2,0} \right)\), and after rotating these three points \({45^ \circ }\)counterclockwise at the same time, the parabola shown in Fig. 1b is obtained. Obviously, the shapes of the two curves have changed after the rotation, which cannot satisfy the geometric invariance. Therefore, scalar functions are not geometrically invariant and cannot be used to describe the shape of objects.

Parametric polynomial curves are geometrically invariant. The parameters of the above 3 points are assigned to \(u=0,0.5,1\) respectively to determine a parameter binomial curve.

$$\begin{gathered} p\left( u \right)=2\left( {u - 0.5} \right)\left( {u - 1} \right){p_0} - 4u\left( {u - 1} \right){p_1}+ \hfill \\ 2u\left( {u - 0.5} \right){p_2} \hfill \\ \end{gathered}$$

1

After three points rotate \({45^ \circ }\) counterclockwise at the same time, the obtained parameter binomial curve expression remains unchanged, and the curve shape also remains unchanged. Figure 2a shows the shape of the original curve, and Fig. 2b shows the curve after three points are rotated counterclockwise to \({45^ \circ }\) [20].

Parametric polynomials are usually described in the form of parameter vector functions represented by bases. The same polynomial curve represented by different basis functions has different advantages and disadvantages.

After determining the basis function of the parametric polynomial, if a parametric polynomial curve is to be uniquely determined by A points, the data points must be parameterized. There are four commonly used data parameterization methods as follows:

(1) If it is a uniform parameterization method, the parameter division method is as follows:

$${u_i}=i,i=0,1, \cdots ,n - 1$$

2

(2) If it is a uniform parameterization method, the parameter division method is as follows:

$$\left\{ {\begin{array}{*{20}{c}} {{u_0}{\text{=}}0} \\ {{u_i}{\text{=}}{u_{i - 1}}{\text{+}}\left| {\Delta {p_{i - 1}}} \right|,i=1,2, \cdots ,n} \end{array}} \right.$$

3

In the formula, \(\Delta {p_i}\) is the forward difference vector, and \(\Delta {p_i}={p_{i+1}} - {p_i}\) is the chord vector.

(3) If it is a centripetal parameterization method, the parameter division method is as follows:

$$\left\{ {\begin{array}{*{20}{c}} {{u_0}{\text{=}}0} \\ {{u_i}{\text{=}}{u_{i - 1}}{\text{+}}{{\left| {\Delta {p_{i - 1}}} \right|}^{\frac{1}{2}}},i=1,2, \cdots ,n} \end{array}} \right.$$

4

(4) If it is the welfare parameterization method, the parameter division method is as follows:

$$\left\{ {\begin{array}{*{20}{c}} {{u_0}{\text{=}}0} \\ {{u_i}{\text{=}}{u_{i - 1}}+{k_i}\left| {\Delta {p_{i - 1}}} \right|,i=1,2, \cdots ,n} \end{array}} \right.$$

5

In the formula, there is

$$\begin{gathered} {k_i}{\text{=}}1{\text{+}}\frac{3}{2}\left[ {\frac{{\left| {\Delta {p_{i - 2}}} \right|{\theta _{i - 1}}}}{{\left| {\Delta {p_{i - 2}}} \right|{\text{+}}\left| {\Delta {p_{i - 1}}} \right|}}{\text{+}}\frac{{\left| {\Delta {p_i}} \right|{\theta _i}}}{{\left| {\Delta {p_{i - 1}}} \right|{\text{+}}\left| {\Delta {p_i}} \right|}}} \right] \hfill \\ {\theta _i}{\text{=}}\hbox{min} \left( {\pi - \angle {p_{i - 1}}{p_i}{p_{i+1}},\frac{\pi }{2}} \right) \hfill \\ \left| {\Delta {p_{i - 1}}} \right|{\text{=}}\left| {\Delta {p_n}} \right|=0 \hfill \\ \end{gathered}$$

6

As shown in Fig. 3, the parametric polynomial curve determined by six points in sequence has different shapes due to the different parameterization methods of the data points. The double-dotted line is a parametric polynomial curve divided by the welfare parameterization method, and the parameterized result is \(U=\left[ {0,0.27,0.55,0.71,0.87,1} \right]\) [21].

The process of constructing a parametric polynomial curve is the process of inversely calculating the coefficient vector group according to the data points after the data points are parameterized. We assume that a parametric polynomial curve expressed by a power base through data point \({p_i}\left( {i=0,1, \cdots ,n} \right)\) is required. The equation of the curve is:

$$p\left( u \right)=\sum\limits_{{j=0}}^{n} {{a_j}} {u^j}=\left[ {\begin{array}{*{20}{c}} 1&u& \cdots &{{u^n}} \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{a_0}} \\ {{a_1}} \\ \vdots \\ {{a_n}} \end{array}} \right]$$

7

In the formula, \({a_j}\left( {j=1,2, \cdots ,n} \right)\) is the required coefficient vector group. After parameterization of the data points, \({\angle _u}:{u_0}<{u_1}< \cdots <{u_{n - 1}}<{u_n}\) is the known quantity. Data points \({p_i}\left( {i=0,1, \cdots ,n} \right)\) and \({u_i}\left( {i=0,1, \cdots ,n} \right)\) are substituted into the following formula to satisfy the following conditions.

$$p\left( {{u_i}} \right)=\sum\limits_{{j=0}}^{n} {{a_j}} {u^j}=\left[ {\begin{array}{*{20}{c}} 1&u& \cdots &{{u^n}} \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{a_0}} \\ {{a_1}} \\ \vdots \\ {{a_n}} \end{array}} \right]={p_i},i=0,1, \cdots ,n$$

8

By solving the above formula, after obtaining the coefficient vector group, the desired parameter polynomial curve expression can be obtained [22].

$$p\left( t \right)=\sum\limits_{{j=0}}^{n} {{b_j}} {B_{j,n}}\left( t \right),0 \leqslant t \leqslant 1$$

9

In the formula, \({b_j}\left( {j=0,1, \cdots ,n} \right)\) is called the control point or Bezier point. \({B_{j,n}}\left( t \right)\) is the Bessel basis function, which is also called Bernstein basis, and its definition is:

$${B_{j,n}}\left( t \right){\text{=}}\left\{ {\begin{array}{*{20}{c}} {C_{n}^{j}{t^j}{{\left( {1 - t} \right)}^{n - j}},j=0,1, \cdots ,n} \\ {0,otherwise} \end{array}} \right.$$

10

The Bezier curve can be generated by the recursive process of control points. The generation principle can be described by the three tangent theorem of parabola, as shown in Fig. 4. There are three points A, B, and C on the parabola. A and B are the start and end points of a parabola, which intersect at point D through the tangent line of point A and point C. A point E is taken on the line segment AD, and the tangent of the parabola is made through point E. The tangent point is B, and the line segment CD intersects at point F, then, there is [23]:

$$\frac{{AE}}{{ED}}=\frac{{DF}}{{FC}}=\frac{{EB}}{{BF}}$$

11

After each recursion, the intermediate control point is one less than the control point before the recursion, and the superscript of the intermediate control point is increased by 1, that is, \(n+1\) control points. After n times of recursion, the number of control points becomes one, which is the interpolation point of the n-th Bezier curve. When t is from 0 to 1, the graph scanned by \(b_{0}^{n}\) is the n-th Bezier curve.

The B-spline curve equation can be expressed as:

$$p\left( u \right)=\sum\limits_{{i=0}}^{n} {{d_i}} {N_{i,k}}\left( u \right)$$

12

In the formula, \({d_i}\left( {i=0,1, \cdots ,n} \right)\) is the control point of the spline curve, and \({N_{i,k}}\left( u \right)\left( {i=0,1, \cdots ,n} \right)\) is the B-spline basis function of the k-degree B-spline curve. \(U=\left[ {{u_0},{u_1}, \cdots ,{u_{n+k}},{u_{n+k+1}}} \right]\) is called the node vector of the B-spline basis. The node vector is generated by the control points of the spline curve through different algorithms, which will be described later. B-spline basis functions are usually expressed by the Deboor_Cox recursive formula, as shown below:

$$\left\{ {\begin{array}{*{20}{c}} {{N_{i,0}}\left( u \right){\text{=}}\left\{ {\begin{array}{*{20}{c}} {1,{u_i} \leqslant u \leqslant {u_{i+1}}} \\ {0.otherwise} \end{array}} \right.} \\ {{N_{i,k}}\left( u \right)=\frac{{u - {u_i}}}{{{u_{i+k}} - {u_i}}}{N_{i,k - 1}}\left( u \right)+\frac{{{u_{i+k+1}} - u}}{{{u_{i+k+1}} - {u_{i+1}}}}{N_{i+1,k - 1}}\left( u \right)} \\ 0 \end{array}} \right.$$

13

In the formula, in the double subscript of B-spline base \({N_{i,k}}\left( u \right)\), the first subscript i represents the sequence number, and the corresponding is the subscript i of the node vector \({u_i}\). The second subscript k represents the number of B-spline bases. It can be seen from the above formula that only the parameter U of the zero-order B-spline basis is 1 in the corresponding interval \(\left[ {{u_i},{u_{i+1}}} \right]\), and the other intervals are 0.

According to the definition of the spline curve, through \(n+1\) control points to determine a B-spline curve of degree k, These \(n+k+2\) nodes constitute the node vector \(U=\left[ {{u_0},{u_1}, \cdots ,{u_{n+k}},{u_{n+k+1}}} \right]\) of the spline curve. However, the \(k+1\) control points of the \(n+1\) control points determine the first segment of the spline curve, and its domain of definition is \(u \in \left[ {{u_k},{u_{k+1}}} \right]\). Similarly, the \(k+1\) most control points among the \(n+1\) control points determine the end segment of the spline curve. Its domain is \(u \in \left[ {{u_n},{u_{n+1}}} \right]\). Therefore, the domain of the k-th B-spline curve is a proper subset of its parameter vector, and its domain is \(u \in \left[ {{u_k},{u_{n+1}}} \right]\). Therefore, the B-spline curve expression can be rewritten into the segment representation:

$$p\left( u \right)=\sum\limits_{{j=i - k}}^{i} {{d_j}} {N_{j,k}}\left( u \right),u \in \left[ {{u_i},{u_{i+1}}} \right]$$

14

As shown in Fig. 6, the six control points of determine a third-degree spline curve. The control point \({d_4}\) is moved, the positions of the other 5 control points remain unchanged, and a new cubic spline curve is determined. Comparing the newly generated curve with the original curve, the shape of the curve in the \(\left[ {{u_4},{u_7}} \right]\) node interval has changed.