Difference between revisions of "Bézier spline"
Ulf Rehmann (talk | contribs) m (moved Bézier spline to Bezier spline: ascii title) |
Ulf Rehmann (talk | contribs) m (tex done) |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
− | + | {{TEX|done}} | |
− | + | A [[Spline|spline]] curve in $ \mathbf R^{3} $, | |
+ | where each polynomial spline segment is expressed in terms of [[Bernstein polynomials|Bernstein polynomials]] of a fixed degree. If the Bézier spline consists of only one segment, one speaks of a Bézier curve (cf. also [[Bézier curve|Bézier curve]]). Bézier splines and curves are mainly used in the field of computer aided geometric design (CAGD), which is concerned with the design, approximation and representation of curves and surfaces by a computer. The Bézier representation overcomes numerical and geometric drawbacks of other polynomial forms. Bézier curves and surfaces were independently developed by P. de Casteljau at Citroën (about 1959) and by P. Bézier at Rénault (about 1962) for the construction of car bodies. | ||
− | < | + | Given an interval $ [ s,t ] $, |
+ | $ s < t $, | ||
+ | the Bernstein polynomials over $ [ s,t ] $ | ||
+ | of degree $ n > 0 $( | ||
+ | cf. [[Bernstein polynomials|Bernstein polynomials]]) are defined by | ||
− | + | $$ | |
+ | {} _ s^{t} B _ i^{n} ( u ) = { | ||
+ | \frac{1}{( t - s ) ^ n} | ||
+ | } \binom{n}{i} ( u - s )^{i} ( t - u ) ^ {n - i} , | ||
+ | $$ | ||
− | + | $$ | |
+ | i = 0 \dots n. | ||
+ | $$ | ||
− | + | In many applications, $ [ s,t ] = [ 0,1 ] $ | |
+ | and then $ B _ i^{n} ( u ) = {} _ 0^{1} B _ i^{n} ( u ) = \binom{n}{i} u^{i} ( 1 - u ) ^ {n - i} $. | ||
+ | Every polynomial of degree $ \leq n $ | ||
+ | can be uniquely expressed in terms of $ B _ i^{n} ( u ) $, | ||
+ | $ i = 0 \dots n $. | ||
+ | Now, given $ n + 1 $ | ||
+ | points $ \mathbf b _{0} \dots \mathbf b _{n} $ | ||
+ | in $ \mathbf R^{3} $( | ||
+ | or $ \mathbf R^{m} $, | ||
+ | $ m \geq 2 $), | ||
+ | the polynomial parametric curve | ||
− | + | $$ | |
+ | \mathbf q ( u ) = \sum _ {i = 0} ^ n {_ s^{t} B _ i^{n} ( u ) \cdot \mathbf b _ i} , \quad u \in [ s,t ] , | ||
+ | $$ | ||
− | + | is said to be a Bézier curve of degree $ n $ | |
+ | over $ [ s,t ] $. | ||
+ | The points $ \mathbf b _{0} \dots \mathbf b _{n} $ | ||
+ | are called Bézier points of $ \mathbf q $ | ||
+ | and they form the vertices of its so-called Bézier polygon. For every $ u \in [ s,t ] $ | ||
+ | the point $ \mathbf q ( u ) $ | ||
+ | lies in the convex hull of $ \mathbf b _{0} \dots \mathbf b _{n} $. | ||
+ | Moreover, $ \mathbf q ( s ) = \mathbf b _{0} $, | ||
+ | $ \mathbf q ( t ) = \mathbf b _{n} $, | ||
+ | and the lines $ \mathbf b _{0} \mathbf b _{1} $ | ||
+ | and $ \mathbf b _{ {n - 1}} \mathbf b _{n} $ | ||
+ | are tangent to $ \mathbf q $ | ||
+ | at $ u = s $, | ||
+ | respectively $ u = t $. | ||
+ | The following de Casteljau algorithm is an efficient and stable method for evaluating $ \mathbf q ( u ) $ | ||
+ | at $ u \in [ s,t ] $: | ||
+ | Setting $ \mathbf b _ i^{0} ( u ) = \mathbf b _{i} $, | ||
+ | $ {\widetilde{u} } = { {( u - s )} / {( t - s )}} $, | ||
+ | and | ||
− | + | $$ | |
+ | \mathbf b _ i^{r} ( u ) = ( 1 - {\widetilde{u} } ) \mathbf b _{i} ^ {r - 1} ( u ) + {\widetilde{u} } \mathbf b _{ {i + 1}} ^ {r - 1} ( u ) | ||
+ | $$ | ||
− | + | for $ r = 1 \dots n $ | |
+ | and $ i = 0 \dots n - r $, | ||
+ | one has $ \mathbf b _ 0^{n} ( u ) = \mathbf q ( u ) $. | ||
− | < | + | Now, let $ l + 1 $ |
+ | real values $ t _{0} \dots t _{l} $ | ||
+ | be given with $ t _{i} < t _{ {i + 1}} $, | ||
+ | $ i = 0 \dots l $. | ||
+ | Then a piecewise-polynomial continuous curve $ \mathbf q : {[ t _{0} ,t _{l} ]} \rightarrow {\mathbf R ^ 3} $( | ||
+ | or $ \mathbf R^{m} $, | ||
+ | $ m \geq 2 $) | ||
+ | is called a Bézier spline of degree $ n $ | ||
+ | if and only if each curve segment $ \mathbf q _{i} = \mathbf q \mid _{ {[ t _{i} ,t _ {i + 1}} ]} $, | ||
+ | $ i = 0 \dots l $, | ||
+ | is a Bézier curve of degree $ n $, | ||
+ | that is, it has a representation | ||
− | + | $$ | |
+ | \mathbf q _{i} ( u ) = \sum _ {j = 0} ^ n {} {_ {t _ i} ^ {t _{ {i + 1}}} B _ j^{n} ( u ) \cdot \mathbf b _{ {i,j}}} , \quad u \in [ t _{i} ,t _{ {i + 1}} ] . | ||
+ | $$ | ||
− | + | The $ C^{0} $- | |
+ | continuity of $ \mathbf q $ | ||
+ | is equivalent to $ \mathbf b _{ {i,n}} = \mathbf b _{ {i + 1,0}} $, | ||
+ | $ i = 0 \dots l - 1 $. | ||
+ | There are two concepts of continuity for the inner knots $ t _{1} \dots t _{ {l - 1}} $. | ||
+ | First, one can use the usual $ C^{k} $- | ||
+ | continuity of $ \mathbf q $ | ||
+ | at the inner knots with respect to the given parameter $ u $ | ||
+ | for each coordinate function of $ \mathbf q $( | ||
+ | cf. [[Spline|Spline]]). $ C^{2} $- | ||
+ | continuous (Bézier) splines are sufficient for many practical applications. | ||
+ | |||
+ | But, since a $ C^{k} $ | ||
+ | Bézier spline can have singularities, the weaker concept of geometric continuity was introduced. It is known that each rectifiable curve can be reparametrized so that the new parameter $ s $ | ||
+ | is arc length (see [[Natural parameter|Natural parameter]]). A curve $ \mathbf q $ | ||
+ | is called $ GC^{k} $- | ||
+ | continuous at a point $ \mathbf q ( s _{0} ) $ | ||
+ | if and only if it is $ C^{k} $- | ||
+ | continuous at this point with respect to arc length $ s $. | ||
+ | $ C^{k} $- | ||
+ | continuity implies $ GC^{k} $- | ||
+ | continuity. A $ GC^{k} $( | ||
+ | Bézier) spline is $ GC^{k} $- | ||
+ | continuous at its inner knots. For instance, $ GC^{1} $- | ||
+ | continuity can be characterized by tangent continuity. Furthermore, a Bézier spline $ \mathbf q $ | ||
+ | is $ GC^{2} $- | ||
+ | continuous if and only if it has a continuous Frénet frame (cf. [[Frénet trihedron|Frénet trihedron]]) and a continuous curvature at each inner knot. Explicit formulas for $ GC^{2} $- | ||
+ | continuity involving Bézier points can be found in the references below. Special representations of cubic $ GC^{2} $ | ||
+ | Bézier splines are cubic $ \beta $- | ||
+ | splines and cubic $ \gamma $- | ||
+ | splines (see [[#References|[a3]]] or [[#References|[a4]]]). For rational Bézier splines see the references below. | ||
====References==== | ====References==== | ||
<table><TR><TD valign="top">[a1]</TD> <TD valign="top"> W. Boehm, G. Farin, J. Kahmann, "A survey of curve and surface methods in CAGD" ''Computer Aided Geometric Design'' , '''1''' (1984) pp. 1–60</TD></TR><TR><TD valign="top">[a2]</TD> <TD valign="top"> J. Encarnaçao, W. Straßer, R. Klein, "Datenverarbeitung 1. Gerätetechnik, Programmierung und Anwendung graphischer Systeme" , R. Oldenbourg (1996)</TD></TR><TR><TD valign="top">[a3]</TD> <TD valign="top"> G. Farin, "Curves and surfaces for computer aided geometric design. A practical guide" , Acad. Press (1993) (Edition: Third)</TD></TR><TR><TD valign="top">[a4]</TD> <TD valign="top"> J. Hoschek, D. Lasser, "Grundlagen der geometrischen Datenverarbeitung" , Teubner (1992) (Edition: Second)</TD></TR><TR><TD valign="top">[a5]</TD> <TD valign="top"> M.E Mortensen, "Geometric modeling" , Wiley (1985)</TD></TR></table> | <table><TR><TD valign="top">[a1]</TD> <TD valign="top"> W. Boehm, G. Farin, J. Kahmann, "A survey of curve and surface methods in CAGD" ''Computer Aided Geometric Design'' , '''1''' (1984) pp. 1–60</TD></TR><TR><TD valign="top">[a2]</TD> <TD valign="top"> J. Encarnaçao, W. Straßer, R. Klein, "Datenverarbeitung 1. Gerätetechnik, Programmierung und Anwendung graphischer Systeme" , R. Oldenbourg (1996)</TD></TR><TR><TD valign="top">[a3]</TD> <TD valign="top"> G. Farin, "Curves and surfaces for computer aided geometric design. A practical guide" , Acad. Press (1993) (Edition: Third)</TD></TR><TR><TD valign="top">[a4]</TD> <TD valign="top"> J. Hoschek, D. Lasser, "Grundlagen der geometrischen Datenverarbeitung" , Teubner (1992) (Edition: Second)</TD></TR><TR><TD valign="top">[a5]</TD> <TD valign="top"> M.E Mortensen, "Geometric modeling" , Wiley (1985)</TD></TR></table> |
Latest revision as of 21:59, 29 January 2020
A spline curve in $ \mathbf R^{3} $,
where each polynomial spline segment is expressed in terms of Bernstein polynomials of a fixed degree. If the Bézier spline consists of only one segment, one speaks of a Bézier curve (cf. also Bézier curve). Bézier splines and curves are mainly used in the field of computer aided geometric design (CAGD), which is concerned with the design, approximation and representation of curves and surfaces by a computer. The Bézier representation overcomes numerical and geometric drawbacks of other polynomial forms. Bézier curves and surfaces were independently developed by P. de Casteljau at Citroën (about 1959) and by P. Bézier at Rénault (about 1962) for the construction of car bodies.
Given an interval $ [ s,t ] $, $ s < t $, the Bernstein polynomials over $ [ s,t ] $ of degree $ n > 0 $( cf. Bernstein polynomials) are defined by
$$ {} _ s^{t} B _ i^{n} ( u ) = { \frac{1}{( t - s ) ^ n} } \binom{n}{i} ( u - s )^{i} ( t - u ) ^ {n - i} , $$
$$ i = 0 \dots n. $$
In many applications, $ [ s,t ] = [ 0,1 ] $ and then $ B _ i^{n} ( u ) = {} _ 0^{1} B _ i^{n} ( u ) = \binom{n}{i} u^{i} ( 1 - u ) ^ {n - i} $. Every polynomial of degree $ \leq n $ can be uniquely expressed in terms of $ B _ i^{n} ( u ) $, $ i = 0 \dots n $. Now, given $ n + 1 $ points $ \mathbf b _{0} \dots \mathbf b _{n} $ in $ \mathbf R^{3} $( or $ \mathbf R^{m} $, $ m \geq 2 $), the polynomial parametric curve
$$ \mathbf q ( u ) = \sum _ {i = 0} ^ n {_ s^{t} B _ i^{n} ( u ) \cdot \mathbf b _ i} , \quad u \in [ s,t ] , $$
is said to be a Bézier curve of degree $ n $ over $ [ s,t ] $. The points $ \mathbf b _{0} \dots \mathbf b _{n} $ are called Bézier points of $ \mathbf q $ and they form the vertices of its so-called Bézier polygon. For every $ u \in [ s,t ] $ the point $ \mathbf q ( u ) $ lies in the convex hull of $ \mathbf b _{0} \dots \mathbf b _{n} $. Moreover, $ \mathbf q ( s ) = \mathbf b _{0} $, $ \mathbf q ( t ) = \mathbf b _{n} $, and the lines $ \mathbf b _{0} \mathbf b _{1} $ and $ \mathbf b _{ {n - 1}} \mathbf b _{n} $ are tangent to $ \mathbf q $ at $ u = s $, respectively $ u = t $. The following de Casteljau algorithm is an efficient and stable method for evaluating $ \mathbf q ( u ) $ at $ u \in [ s,t ] $: Setting $ \mathbf b _ i^{0} ( u ) = \mathbf b _{i} $, $ {\widetilde{u} } = { {( u - s )} / {( t - s )}} $, and
$$ \mathbf b _ i^{r} ( u ) = ( 1 - {\widetilde{u} } ) \mathbf b _{i} ^ {r - 1} ( u ) + {\widetilde{u} } \mathbf b _{ {i + 1}} ^ {r - 1} ( u ) $$
for $ r = 1 \dots n $ and $ i = 0 \dots n - r $, one has $ \mathbf b _ 0^{n} ( u ) = \mathbf q ( u ) $.
Now, let $ l + 1 $ real values $ t _{0} \dots t _{l} $ be given with $ t _{i} < t _{ {i + 1}} $, $ i = 0 \dots l $. Then a piecewise-polynomial continuous curve $ \mathbf q : {[ t _{0} ,t _{l} ]} \rightarrow {\mathbf R ^ 3} $( or $ \mathbf R^{m} $, $ m \geq 2 $) is called a Bézier spline of degree $ n $ if and only if each curve segment $ \mathbf q _{i} = \mathbf q \mid _{ {[ t _{i} ,t _ {i + 1}} ]} $, $ i = 0 \dots l $, is a Bézier curve of degree $ n $, that is, it has a representation
$$ \mathbf q _{i} ( u ) = \sum _ {j = 0} ^ n {} {_ {t _ i} ^ {t _{ {i + 1}}} B _ j^{n} ( u ) \cdot \mathbf b _{ {i,j}}} , \quad u \in [ t _{i} ,t _{ {i + 1}} ] . $$
The $ C^{0} $- continuity of $ \mathbf q $ is equivalent to $ \mathbf b _{ {i,n}} = \mathbf b _{ {i + 1,0}} $, $ i = 0 \dots l - 1 $. There are two concepts of continuity for the inner knots $ t _{1} \dots t _{ {l - 1}} $. First, one can use the usual $ C^{k} $- continuity of $ \mathbf q $ at the inner knots with respect to the given parameter $ u $ for each coordinate function of $ \mathbf q $( cf. Spline). $ C^{2} $- continuous (Bézier) splines are sufficient for many practical applications.
But, since a $ C^{k} $ Bézier spline can have singularities, the weaker concept of geometric continuity was introduced. It is known that each rectifiable curve can be reparametrized so that the new parameter $ s $ is arc length (see Natural parameter). A curve $ \mathbf q $ is called $ GC^{k} $- continuous at a point $ \mathbf q ( s _{0} ) $ if and only if it is $ C^{k} $- continuous at this point with respect to arc length $ s $. $ C^{k} $- continuity implies $ GC^{k} $- continuity. A $ GC^{k} $( Bézier) spline is $ GC^{k} $- continuous at its inner knots. For instance, $ GC^{1} $- continuity can be characterized by tangent continuity. Furthermore, a Bézier spline $ \mathbf q $ is $ GC^{2} $- continuous if and only if it has a continuous Frénet frame (cf. Frénet trihedron) and a continuous curvature at each inner knot. Explicit formulas for $ GC^{2} $- continuity involving Bézier points can be found in the references below. Special representations of cubic $ GC^{2} $ Bézier splines are cubic $ \beta $- splines and cubic $ \gamma $- splines (see [a3] or [a4]). For rational Bézier splines see the references below.
References
[a1] | W. Boehm, G. Farin, J. Kahmann, "A survey of curve and surface methods in CAGD" Computer Aided Geometric Design , 1 (1984) pp. 1–60 |
[a2] | J. Encarnaçao, W. Straßer, R. Klein, "Datenverarbeitung 1. Gerätetechnik, Programmierung und Anwendung graphischer Systeme" , R. Oldenbourg (1996) |
[a3] | G. Farin, "Curves and surfaces for computer aided geometric design. A practical guide" , Acad. Press (1993) (Edition: Third) |
[a4] | J. Hoschek, D. Lasser, "Grundlagen der geometrischen Datenverarbeitung" , Teubner (1992) (Edition: Second) |
[a5] | M.E Mortensen, "Geometric modeling" , Wiley (1985) |
Bézier spline. Encyclopedia of Mathematics. URL: http://encyclopediaofmath.org/index.php?title=B%C3%A9zier_spline&oldid=22115