

\[ \begin{aligned} D &= \frac{\log(N)}{\log(r)} \\ \end{aligned} \]
\[ \begin{aligned} \\ N &= 4 \\ r &= 3 \\ D &= \log(4)/\log(3) \\ &= 1.26185951... \end{aligned} \]
source: Ken Musgrave
Parametric representation \(\vec{x} \colon [a,b] \subset \R \to \R^3\) (or \(\R^2\)) \[\vec{x}\of{t} = \matrix{x\of{t} \\ y\of{t} \\ z\of{t}}\]
Curve is defined as image of interval \([a,b]\) under parameterization function \(\vec{x}\).
\[\vec{x}\of{t} = \matrix{\sin^3(t) \\ \frac{1}{16}(13\cos(t) - 5 \cos(2t) - 2 \cos(3t)-\cos(4t))}\]
\[ \vec{x}(t) = \sum_{i=0}^n \vec{b}_i \, \phi_i(t) \;\in \Pi^n\]
Which basis functions \(\{ \phi_0, \ldots, \phi_n \}\) that span \(\Pi^n\), the space of polynomials of degree \(n\), should we use?
Check requirements for geometry representation:
Let’s find another basis of \(\Pi^n\)!
\[ \begin{align*} B_i^n(t) &\;=\; \binom{n}{i} t^i (1-t)^{n-i} \,,\quad 0 \leq i \leq n\\ \binom{n}{i} &\;=\; \begin{cases} \frac{n!}{i!(n-i)!} & \text{if }0 \leq i \leq n, \\ 0 & \text{otherwise.} \end{cases} \end{align*} \]
\[B_i^n(t) = \binom{n}{i} t^i (1-t)^{n-i}\]
Partition of unity: \(\sum_{i=0}^n B_i^n(t) = 1\)
Prove it!
\[ \begin{eqnarray*} 1 &=& t + (1-t) \\ &=& \left[ t + (1-t) \right]^n \\ &=& \sum_{i=0}^n \binom{n}{i} t^i (1-t)^{n-i} \\ &=& \sum_{i=0}^n B_i^n(t) \end{eqnarray*} \]
Bezier curves use Bernstein polynomials as basis: \[\vec{x}(t) = \sum_{i=0}^n \vec{b}_i \, B_i^n(t)\]
Check requirements for geometry representation:
How to efficiently implement binomial coefficient and faculty?
\[ B_i^n(t) = \binom{n}{i} t^i (1-t)^{n-i} \quad\text{and}\quad \binom{n}{i} \;=\; \begin{cases} \frac{n!}{i!(n-i)!} & \text{if }0 \leq i \leq n, \\ 0 & \text{otherwise.} \end{cases} \]
\[\begin{align*} \vec{b}_0^1 & = (1-t) \, \vec{b}_0 + t \, \vec{b}_1 \\ \vec{b}_1^1 & = (1-t) \, \vec{b}_1 + t \, \vec{b}_2 \\[3mm] \vec{b}_0^2 & = (1-t) \, \vec{b}_0^1 + t \, \vec{b}_1^1 \\ & = \underbrace{(1-t)^2}_{B_0^2(t)} \, \vec{b}_0 + \underbrace{2(1-t)t}_{B_1^2(t)} \, \vec{b}_1 + \underbrace{t^2}_{B_2^2(t)} \, \vec{b}_2 \end{align*}\]
Bernstein polynomials can be evaluated through a recursion:
\[B_i^n(t) = (1-t)\,B_i^{n-1}(t) \;+\; t\,B_{i-1}^{n-1}(t)\]
with \(B_0^0(t) = 1\) and \(B_i^n(t) = 0\) for \(i \notin \{0,\ldots,n\}\)
Prove it!
\[\begin{eqnarray*} B_i^n(t) &=& \binom{n}{i} t^i (1-t)^{n-i} \\[2mm] &=& \binom{n-1}{i} t^i (1-t)^{n-i} \;+\; \binom{n-1}{i-1} t^i (1-t)^{n-i} \\[2mm] &=& (1-t) \cdot \binom{n-1}{i} t^i (1-t)^{(n-1)-i} \;+\; t \cdot \binom{n-1}{i-1} t^{i-1} (1-t)^{(n-1)-(i-1)} \\[2mm] &=& (1-t)\,B_i^{n-1}(t) \;+\; t\,B_{i-1}^{n-1}(t) \end{eqnarray*}\]
\[\begin{eqnarray*} \sum_{i=0}^n \vec{b}_i B_i^n(t) &=& \sum_{i=0}^n \vec{b}_i \left[ (1-t)\,B_i^{n-1}(t) \;+\; t\,B_{i-1}^{n-1}(t) \right] \\ &=& \sum_{i=0}^{n-1} \left[ (1-t)\,\vec{b}_i \;+\; t\,\vec{b}_{i+1} \right] \, B_{i}^{n-1}(t) \end{eqnarray*}\]
Bezier curves are the most prominent curve representation:
Inkscape
Dassault CATIA
FontForge