Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Bézier curve
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Degree elevation== A Bézier curve of degree ''n'' can be converted into a Bézier curve of degree ''n'' + 1 ''with the same shape''. This is useful if software supports Bézier curves only of specific degree. For example, systems that can only work with cubic Bézier curves can implicitly work with quadratic curves by using their equivalent cubic representation. To do degree elevation, we use the equality <math>\mathbf{B}(t) = (1-t)\mathbf{B}(t) + t\mathbf{B}(t).</math> Each component <math>\mathbf{b}_{i,n}(t)\mathbf{P}_i</math> is multiplied by (1 − ''t'') and ''t'', thus increasing a degree by one, without changing the value. Here is the example of increasing degree from 2 to 3. :<math>\begin{align} (1 - t)^2 \mathbf{P}_0 + 2(1 - t)t\mathbf{P}_1 + t^2 \mathbf{P}_2 &= (1 - t)^3 \mathbf{P}_0 + 2(1 - t)^2 t\mathbf{P}_1 + (1 - t)t^2 \mathbf{P}_2 + (1 - t)^{2}t\mathbf{P}_0 + 2(1 - t)t^2 \mathbf{P}_1 + t^3 \mathbf{P}_2 \\ &= (1 - t)^3 \mathbf{P}_0 + (1 - t)^2 t \left( \mathbf{P}_0 + 2\mathbf{P}_1\right) + (1 - t) t^2 \left(2\mathbf{P}_1 + \mathbf{P}_2\right) + t^{3}\mathbf{P}_2 \\ &= (1 - t)^3 \mathbf{P}_0 + 3(1 - t)^2 t \tfrac{1}{3} \left( \mathbf{P}_0 + 2\mathbf{P}_1 \right) + 3(1 - t) t^2 \tfrac{1}{3} \left( 2\mathbf{P}_1 + \mathbf{P}_2 \right) + t^{3}\mathbf{P}_2 \end{align}</math> In other words, the original start and end points are unchanged. The new control points are <math>\mathbf{P'}_1 = \tfrac{1}{3} \left( \mathbf{P}_0 + 2\mathbf{P}_1 \right)</math> and <math>\mathbf{P'}_2 = \tfrac{1}{3} \left( 2\mathbf{P}_1 + \mathbf{P}_2 \right)</math>. For arbitrary ''n'' we use equalities<ref name="farin1997"/> :<math>\begin{cases} {n + 1 \choose i}(1 - t)\mathbf{b}_{i, n} = {n \choose i} \mathbf{b}_{i, n + 1} \\ {n + 1 \choose i + 1} t\mathbf{b}_{i, n} = {n \choose i} \mathbf{b}_{i + 1, n + 1} \end{cases} \quad \implies \quad \begin{cases} (1 - t)\mathbf{b}_{i, n} = \frac{n + 1 - i}{n + 1} \mathbf{b}_{i, n + 1} \\ t\mathbf{b}_{i, n} = \frac{i + 1}{n + 1} \mathbf{b}_{i + 1, n + 1} \end{cases} </math> Therefore: :<math>\begin{align} \mathbf{B}(t) &= (1 - t)\sum_{i=0}^n \mathbf{b}_{i, n}(t)\mathbf{P}_i + t\sum_{i=0}^n \mathbf{b}_{i, n}(t)\mathbf{P}_i \\ &= \sum_{i=0}^n \frac{n + 1 - i}{n + 1}\mathbf{b}_{i, n + 1}(t)\mathbf{P}_i + \sum_{i=0}^n \frac{i + 1}{n + 1}\mathbf{b}_{i + 1, n + 1}(t)\mathbf{P}_i \\ &= \sum_{i=0}^{n + 1} \left(\frac{i}{n + 1}\mathbf{P}_{i - 1} + \frac{n + 1 - i}{n + 1}\mathbf{P}_i\right) \mathbf{b}_{i, n + 1}(t) \\ &= \sum_{i=0}^{n + 1} \mathbf{b}_{i, n + 1}(t)\mathbf{P'}_i \end{align}</math> introducing arbitrary <math>\mathbf{P}_{-1}</math> and <math>\mathbf{P}_{n + 1}</math>. Therefore, new control points are<ref name="farin1997">{{cite book |title=Curves and surfaces for computer-aided geometric design |first=Gerald |last=Farin |publisher=[[Elsevier]] Science & Technology Books |year=1997 |isbn=978-0-12-249054-5 |edition=4}}</ref> : <math>\mathbf{P'}_i = \frac{i}{n + 1}\mathbf{P}_{i - 1} + \frac{n + 1 - i}{n + 1}\mathbf{P}_i,\quad i=0, \ldots, n + 1.</math> ===Repeated degree elevation=== The concept of degree elevation can be repeated on a control polygon '''R''' to get a sequence of control polygons '''R''', '''R'''<sub>1</sub>, '''R'''<sub>2</sub>, and so on. After ''r'' degree elevations, the polygon '''R'''<sub>''r''</sub> has the vertices '''P'''<sub>0,''r''</sub>, '''P'''<sub>1,''r''</sub>, '''P'''<sub>2,''r''</sub>, ..., '''P'''<sub>''n''+''r'',''r''</sub> given by <ref name="farin1997"/> :<math>\mathbf{P}_{i,r} = \sum_{j=0}^n \mathbf{P}_j \tbinom nj \frac{\tbinom{r}{i-j}}{\tbinom{n+r}{i}}.</math> It can also be shown that for the underlying Bézier curve ''B'', :<math>\mathbf{\lim_{r \to \infty}R_r} = \mathbf{B}.</math> ===Degree reduction=== Degree reduction can only be done exactly when the curve in question is originally elevated from a lower degree.<ref name="ffbezier">{{cite web |title=Bézier Splines |url=https://fontforge.org/docs/techref/bezier.html |website=FontForge 20230101 documentation}}</ref> A number of approximation algorithms have been proposed and used in practice.<ref>{{cite journal |last1=Eck |first1=Matthias |title=Degree reduction of Bézier curves |journal=Computer Aided Geometric Design |date=August 1993 |volume=10 |issue=3–4 |pages=237–251 |doi=10.1016/0167-8396(93)90039-6}}</ref><ref>{{cite conference |last1=Rababah |first1=Abedallah |last2=Ibrahim |first2=Salisu |chapter=Geometric Degree Reduction of Bézier Curves |title=Mathematics and Computing |conference=ICMC 2018, Varanasi, India |date=2018 |pages=87–95 |doi=10.1007/978-981-13-2095-8_8 |isbn=978-981-13-2094-1 }}</ref>
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Bézier curve
(section)
Add topic