This was a homework question from the class that I found interesting.
The proof method here is quite different from what was outlined in class by Dr. Wang.
Question 1
Circular Arc – Let C \mathcal{C} C be the unit circle centred at the origin and A , B ∈ C A, B \in \mathcal{C} A , B ∈ C be endpoints of an arc subtending a central angle of θ ∈ ( 0 , π ) . \theta \in (0, \pi). θ ∈ ( 0 , π ) .
Represent this circular arc as a rational quadratic Bézier curve
P ( t ) = ( 1 − t ) 2 P 0 + 2 w t ( 1 − t ) P 1 + t 2 P 2 ( 1 − t ) 2 + 2 w t ( 1 − t ) + t 2 , t ∈ [ 0 , 1 ] . P(t) = \frac{(1-t)^2 P_0 + 2 w t (1-t) P_1 + t^2 P_2}{(1-t)^2 + 2 w t (1-t) + t^2},\ t \in [0, 1].
P ( t ) = ( 1 − t ) 2 + 2 wt ( 1 − t ) + t 2 ( 1 − t ) 2 P 0 + 2 wt ( 1 − t ) P 1 + t 2 P 2 , t ∈ [ 0 , 1 ] .
Give control points P 0 , P 1 , P 2 P_0, P_1, P_2 P 0 , P 1 , P 2 and weight w w w , show that w = cos ( θ / 2 ) w = \cos(\theta / 2) w = cos ( θ /2 ) .
Solution
Let P 0 = A P_0 = A P 0 = A and P 2 = B P_2 = B P 2 = B so that P ( 0 ) = A P(0) = A P ( 0 ) = A and P ( 1 ) = B . P(1) = B. P ( 1 ) = B . A A A and B B B being points on the unit circle are represented by A = ⟨ cos α , sin α ⟩ A = \langle\cos\alpha, \sin\alpha\rangle A = ⟨ cos α , sin α ⟩ and B = ⟨ cos β , sin β ⟩ . B = \langle\cos\beta, \sin\beta\rangle. B = ⟨ cos β , sin β ⟩ . Assume wlog. that β > α \beta > \alpha β > α so that the subtended angle is given by θ = β − α , \theta = \beta - \alpha, θ = β − α , and that the origin of our local coordinate frame is at the centre of the circle.
At t = 0.5 t=0.5 t = 0.5 the curve should be the midpoint of our circular arc M M M ,
P ( 0.5 ) = M = 0.5 P 0 + w P 1 + 0.5 P 2 1 + w ( 1 + w ) M = 1 2 ( P 0 + P 2 ) + w P 1 ( 1 + w ) M − w P 1 = 1 2 ( P 0 + P 2 ) ⏟ X . \begin{align*}
P(0.5) = M &= \frac{0.5P_0 + wP_1 + 0.5P_2}{1+w}\\
(1+w)M &= \frac{1}{2}(P_0 + P_2) + wP_1\\
(1+w)M - wP_1 &= \underbrace{\frac{1}{2}(P_0 + P_2)}_{X}.
\end{align*}
P ( 0.5 ) = M ( 1 + w ) M ( 1 + w ) M − w P 1 = 1 + w 0.5 P 0 + w P 1 + 0.5 P 2 = 2 1 ( P 0 + P 2 ) + w P 1 = X 2 1 ( P 0 + P 2 ) .
Observe that X X X is midpoint of the chord connecting the end-points of the circular arc.
From the above X X X , M M M , and P 1 P_1 P 1 are colinear implying that there exists scalars z , k ∈ R z,k \in \mathbb{R} z , k ∈ R such that P 1 = z M = z k X P_1 = zM = zkX P 1 = z M = z k X , yielding the constraint
∥ X ( 1 − w k − w z k ) ∥ = ( 1 − w k − w z k ) ∥ X ∥ = 1. (†) \|X(1 - wk - wzk)\| = (1 - wk - wzk)\|X\| = 1. \tag{\dag}
∥ X ( 1 − w k − w z k ) ∥ = ( 1 − w k − w z k ) ∥ X ∥ = 1. ( † )
We have that ∥ M ∥ = 1 \|M\| = 1 ∥ M ∥ = 1 from the fact that M M M is on the circle, this implies k = ∥ X ∥ − 1 . k = \|X\|^{-1}. k = ∥ X ∥ − 1 .
From the illustration, we have that ∠ X O P 0 = θ / 2 \angle{XOP_0} = \theta / 2 ∠ XO P 0 = θ /2 thus cos ( θ / 2 ) = ∥ X ∥ \cos(\theta / 2) = \|X\| cos ( θ /2 ) = ∥ X ∥ and k = sec ( θ / 2 ) k~=~\sec(\theta / 2) k = sec ( θ /2 ) .
Next, notice that ∥ P 1 ∥ = ∥ z M ∥ = z ∥ M ∥ = z \|P_1\| = \|zM\| = z\|M\| = z ∥ P 1 ∥ = ∥ z M ∥ = z ∥ M ∥ = z is equivalent to finding ∥ X ∥ + ∥ X P 1 ‾ ∥ \|X\| + \|\overline{XP_1}\| ∥ X ∥ + ∥ X P 1 ∥ .
We found ∥ X ∥ \|X\| ∥ X ∥ previously, enabling us to solve for ∥ X P 1 ‾ ∥ \|\overline{XP_1}\| ∥ X P 1 ∥ — it is the tangent of the angle formed by ∠ P 1 P 0 X = γ \angle P_1P_0X = \gamma ∠ P 1 P 0 X = γ times the length X P 0 ‾ \overline{XP_0} X P 0 .
To find γ \gamma γ , we can use the fact the inner product of two direction vectors is proportional to the cosine of the angle, or cos θ = ( A ⋅ B ) / ( ∥ A ∥ ∥ B ∥ ) \cos\theta = (A \cdot B) / (\|A\|\|B\|) cos θ = ( A ⋅ B ) / ( ∥ A ∥∥ B ∥ ) .
The direction of P 1 P 0 ‾ \overline{P_1P_0} P 1 P 0 is given by the tangent of the circle at P ( 0 ) P(0) P ( 0 ) by definition of the Bézier curve, and the direction of P 0 P 2 ‾ \overline{P_0P_2} P 0 P 2 is the difference between points.
γ = arccos ( P ′ ( 0 ) ⋅ P 0 P 1 ‾ ∥ P ′ ( 0 ) ∥ ∥ P 0 P 1 ‾ ∥ ) = arccos ( ⟨ − sin α , cos α ⟩ ⋅ ⟨ cos β − cos α , sin β − sin α ⟩ ∥ ⟨ cos β − cos α , sin β − sin α ⟩ ∥ ) = arccos ( − sin ( α ) ( cos β − cos α ) + cos ( α ) ( sin β − sin α ) ( cos β − cos α ) 2 + ( sin β − sin α ) 2 ) = arccos ( cos α sin β − sin α cos β 2 − 2 cos ( β − α ) ) = arccos ( sin ( β − α ) 2 − 2 cos ( β − α ) ) = arccos ( ∥ sin ( β − α ) 2 − 2 cos ( β − α ) ∥ ) = arccos [ ( 1 2 ⋅ sin ( β − α ) 1 − cos ( β − α ) ) 2 ] = arccos [ 1 2 ⋅ sin 2 ( β − α ) 1 − cos ( β − α ) ] = arccos [ 1 2 ⋅ 1 − cos 2 ( β − α ) 1 − cos ( β − α ) ] = arccos [ 1 2 ⋅ ( 1 − cos ( β − α ) ) ( 1 + cos ( β − α ) ) 1 − cos ( β − α ) ] = arccos [ 1 + cos ( β − α ) 2 ] = arccos [ cos ( β − α 2 ) ] = β − α 2 = θ / 2 \begin{align*}
\gamma &= \arccos\left(\frac{P'(0) \cdot \overline{P_0P_1}}{\|P'(0)\|\|\overline{P_0P_1}\|}\right)\\
&= \arccos\left(\frac{\langle -\sin\alpha, \cos\alpha\rangle \cdot \langle \cos\beta - \cos\alpha, \sin\beta - \sin\alpha \rangle}{\|\langle \cos\beta - \cos\alpha, \sin\beta - \sin\alpha \rangle\|}\right)\\
&= \arccos\left(\frac{-\sin(\alpha)(\cos\beta - \cos\alpha) + \cos(\alpha)(\sin\beta - \sin\alpha)}{\sqrt{(\cos\beta - \cos\alpha)^2 + (\sin\beta - \sin\alpha)^2}}\right)\\
&= \arccos\left(\frac{\cos\alpha\sin\beta - \sin\alpha\cos\beta}{\sqrt{2 - 2\cos(\beta - \alpha)}}\right)\\
&= \arccos\left(\frac{\sin(\beta - \alpha)}{\sqrt{2 - 2\cos(\beta - \alpha)}}\right)\\
&= \arccos\left(\left\|\frac{\sin(\beta - \alpha)}{\sqrt{2 - 2\cos(\beta - \alpha)}}\right\|\right)\tag{$\gamma \in \mathbb{R}^{+}$ by construction}\\
&= \arccos\left[\sqrt{\left(\frac{1}{\sqrt{2}}\cdot\frac{\sin(\beta - \alpha)}{\sqrt{1 - \cos(\beta - \alpha)}}\right)^2}\right]\tag{definition of abs. value}\\
&= \arccos\left[\sqrt{\frac{1}{2}\cdot\frac{\sin^2(\beta - \alpha)}{1 - \cos(\beta - \alpha)}}\right]\\
&= \arccos\left[\sqrt{\frac{1}{2}\cdot\frac{1 - \cos^2(\beta - \alpha)}{1 - \cos(\beta - \alpha)}}\right]\tag{using $\cos^2\theta + \sin^2\theta = 1$}\\
&= \arccos\left[\sqrt{\frac{1}{2}\cdot\frac{(1 - \cos(\beta - \alpha)) (1 + \cos(\beta - \alpha))}{1 - \cos(\beta - \alpha)}}\right]\tag{difference of squares}\\
&= \arccos\left[\sqrt{\frac{1 + \cos(\beta - \alpha)}{2}}\right]\tag{half angle identity}\\
&= \arccos\left[\cos\left(\frac{\beta - \alpha}{2}\right)\right]\\
&= \frac{\beta - \alpha}{2}\\
&= \theta / 2
\end{align*}
γ = arccos ( ∥ P ′ ( 0 ) ∥∥ P 0 P 1 ∥ P ′ ( 0 ) ⋅ P 0 P 1 ) = arccos ( ∥ ⟨ cos β − cos α , sin β − sin α ⟩ ∥ ⟨ − sin α , cos α ⟩ ⋅ ⟨ cos β − cos α , sin β − sin α ⟩ ) = arccos ( ( cos β − cos α ) 2 + ( sin β − sin α ) 2 − sin ( α ) ( cos β − cos α ) + cos ( α ) ( sin β − sin α ) ) = arccos ( 2 − 2 cos ( β − α ) cos α sin β − sin α cos β ) = arccos ( 2 − 2 cos ( β − α ) sin ( β − α ) ) = arccos ( 2 − 2 cos ( β − α ) sin ( β − α ) ) = arccos ( 2 1 ⋅ 1 − cos ( β − α ) sin ( β − α ) ) 2 = arccos 2 1 ⋅ 1 − cos ( β − α ) sin 2 ( β − α ) = arccos [ 2 1 ⋅ 1 − cos ( β − α ) 1 − cos 2 ( β − α ) ] = arccos [ 2 1 ⋅ 1 − cos ( β − α ) ( 1 − cos ( β − α )) ( 1 + cos ( β − α )) ] = arccos [ 2 1 + cos ( β − α ) ] = arccos [ cos ( 2 β − α ) ] = 2 β − α = θ /2 ( γ ∈ R + by construction ) ( definition of abs. value ) ( using cos 2 θ + sin 2 θ = 1 ) ( difference of squares ) ( half angle identity )
Solving for z z z ,
∥ P 1 ∥ = z = ∥ X ∥ + ∥ X P 0 ‾ ∥ tan γ = cos ( θ / 2 ) + sin ( θ / 2 ) tan ( θ / 2 ) = sec ( θ / 2 ) . \begin{align*}
\|P_1\| = z &= \|X\| + \|\overline{XP_0}\|\tan\gamma\\
&= \cos(\theta / 2) + \sin(\theta / 2)\tan(\theta / 2)\\
&= \sec(\theta / 2).
\end{align*}
∥ P 1 ∥ = z = ∥ X ∥ + ∥ X P 0 ∥ tan γ = cos ( θ /2 ) + sin ( θ /2 ) tan ( θ /2 ) = sec ( θ /2 ) .
Plugging z = k = sec ( θ / 2 ) z = k = \sec(\theta / 2) z = k = sec ( θ /2 ) into († \dag † ) gives
1 = ( 1 − w k − w z k ) ∥ X ∥ = [ 1 − w sec ( θ / 2 ) − w sec 2 ( θ / 2 ) ] cos ( θ / 2 ) sec ( θ / 2 ) = 1 − w sec ( θ / 2 ) − w sec 2 ( θ / 2 ) 1 = cos ( θ / 2 ) − w − w sec ( θ / 2 ) cos ( θ / 2 ) + 1 = w + w sec ( θ / 2 ) cos ( θ / 2 ) + 1 = w ( 1 + sec ( θ / 2 ) ) w = cos ( θ / 2 ) + 1 sec ( θ / 2 ) + 1 w = cos ( θ / 2 ) \begin{align*}
1 &= (1 - wk - wzk)\|X\|\\
&= \left[1 - w\sec(\theta / 2) - w\sec^2(\theta / 2)\right]\cos(\theta/2)\\
\sec(\theta/2) &= 1 - w\sec(\theta / 2) - w\sec^2(\theta / 2)\\
1 &= \cos(\theta / 2) - w - w\sec(\theta / 2)\\
\cos(\theta / 2) + 1 &= w + w\sec(\theta / 2)\\
\cos(\theta / 2) + 1 &= w(1 + \sec(\theta / 2))\\
w &= \frac{\cos(\theta / 2) + 1}{\sec(\theta / 2) + 1}\\
w &= \cos(\theta / 2)
\end{align*}
1 sec ( θ /2 ) 1 cos ( θ /2 ) + 1 cos ( θ /2 ) + 1 w w = ( 1 − w k − w z k ) ∥ X ∥ = [ 1 − w sec ( θ /2 ) − w sec 2 ( θ /2 ) ] cos ( θ /2 ) = 1 − w sec ( θ /2 ) − w sec 2 ( θ /2 ) = cos ( θ /2 ) − w − w sec ( θ /2 ) = w + w sec ( θ /2 ) = w ( 1 + sec ( θ /2 )) = sec ( θ /2 ) + 1 cos ( θ /2 ) + 1 = cos ( θ /2 )
Therefore, P 0 = A , P 1 = 1 2 sec 2 ( θ / 2 ) ( A + B ) , P 2 = B , w = cos ( θ / 2 ) P_0 = A, P_1 = \frac{1}{2}\sec^2(\theta / 2) (A + B), P_2 = B, w = \cos(\theta / 2) P 0 = A , P 1 = 2 1 sec 2 ( θ /2 ) ( A + B ) , P 2 = B , w = cos ( θ /2 ) .
Question 2
Semi-circle – Represent the semi-circle x 2 + y 2 − 1 = 0 , y ≥ 0 x^2 + y^2 - 1 = 0, y \geq 0 x 2 + y 2 − 1 = 0 , y ≥ 0 as a rational quadratic Bézier curve.
Solution
Plugging in the results from part A, we get the following expression
P ( t ) = ( 1 − t ) 2 P 0 + sec ( θ / 2 ) t ( 1 − t ) ( P 0 + P 2 ) + t 2 P 2 ( 1 − t ) 2 + 2 cos ( θ / 2 ) t ( 1 − t ) + t 2 , t ∈ [ 0 , 1 ] . P(t) = \frac{(1-t)^2 P_0 + \sec(\theta / 2) t (1-t) (P_0 + P_2) + t^2 P_2}{(1-t)^2 + 2 \cos(\theta / 2) t (1-t) + t^2},\ t \in [0, 1].
P ( t ) = ( 1 − t ) 2 + 2 cos ( θ /2 ) t ( 1 − t ) + t 2 ( 1 − t ) 2 P 0 + sec ( θ /2 ) t ( 1 − t ) ( P 0 + P 2 ) + t 2 P 2 , t ∈ [ 0 , 1 ] .
Taking the limit of the subtended angle θ \theta θ as it tends towards π \pi π yields an expression for representing a semi-circle with a rational Bézier,
lim θ → π P ( t ) = lim θ → π ( 1 − t ) 2 P 0 + sec ( θ / 2 ) t ( 1 − t ) ( P 0 + P 2 ) + t 2 P 2 ( 1 − t ) 2 + 2 cos ( θ / 2 ) t ( 1 − t ) + t 2 . \begin{align*}
\lim_{\theta \to \pi} P(t) &= \lim_{\theta \to \pi}\frac{(1-t)^2 P_0 + \sec(\theta / 2) t (1-t) (P_0 + P_2) + t^2 P_2}{(1-t)^2 + 2 \cos(\theta / 2) t (1-t) + t^2}.
\end{align*}
θ → π lim P ( t ) = θ → π lim ( 1 − t ) 2 + 2 cos ( θ /2 ) t ( 1 − t ) + t 2 ( 1 − t ) 2 P 0 + sec ( θ /2 ) t ( 1 − t ) ( P 0 + P 2 ) + t 2 P 2 .
The denominator of the above expression can be solved directly yielding ( 1 − t ) 2 + t 2 (1-t)^2 + t^2 ( 1 − t ) 2 + t 2 .
Next, we focus on evaluating the numerator. Following the assumptions we made about A , B A, B A , B , and θ \theta θ at the beginning, we have that the limit as θ → π \theta \to \pi θ → π is the same as the limit as both α → 0 \alpha \to 0 α → 0 and β → π . \beta \to \pi. β → π . This enables the numerator to be expressed as the following expression
( 1 − t ) 2 lim α → 0 ⟨ cos α , sin α ⟩ + t ( 1 − t ) lim ( α , β ) → ( 0 , π ) sec ( β − α 2 ) ⟨ cos α + cos β , sin α + sin β ⟩ + t 2 lim β → π ⟨ cos β , sin β ⟩ . \begin{align*}
&(1-t)^2\lim_{\alpha \to 0} \langle \cos\alpha, \sin\alpha\rangle\\
&\quad+ t (1-t) \lim_{(\alpha, \beta) \to (0, \pi)} \sec\left(\frac{\beta - \alpha}{2}\right) \left\langle \cos\alpha + \cos\beta, \sin\alpha + \sin\beta\right\rangle\\
&\quad+ t^2 \lim_{\beta \to \pi} \langle\cos\beta, \sin\beta\rangle.
\end{align*}
( 1 − t ) 2 α → 0 lim ⟨ cos α , sin α ⟩ + t ( 1 − t ) ( α , β ) → ( 0 , π ) lim sec ( 2 β − α ) ⟨ cos α + cos β , sin α + sin β ⟩ + t 2 β → π lim ⟨ cos β , sin β ⟩ .
The limits in the first and third line are trivial. We shift our focus to the second line as lim θ → π / 2 sec θ \lim_{\theta \to \pi / 2} \sec\theta lim θ → π /2 sec θ is indeterminant.
Using the identity cos α − cos β = ∓ 2 sin ( A + B ) sin ( ∓ A ± B ) \cos \alpha - \cos \beta = \mp2 \sin(A+B) \sin(\mp A\pm B) cos α − cos β = ∓ 2 sin ( A + B ) sin ( ∓ A ± B ) , we have that
lim ( α , β ) → ( 0 , π ) sec ( β − α 2 ) ⟨ cos α + cos β , sin α + sin β ⟩ = 2 lim ( α , β ) → ( 0 , π ) sec ( β − α 2 ) ⟨ cos ( α + β 2 ) cos ( α − β 2 ) , sin ( α + β 2 ) cos ( α − β 2 ) ⟩ = 2 lim ( α , β ) → ( 0 , π ) sec ( β − α 2 ) ⟨ cos ( α + β 2 ) cos ( β − α 2 ) , sin ( α + β 2 ) cos ( β − α 2 ) ⟩ = 2 lim ( α , β ) → ( 0 , π ) ⟨ cos ( α + β 2 ) , sin ( α + β 2 ) ⟩ = 2 ⟨ cos ( π 2 ) , sin ( π 2 ) ⟩ = 2 ⟨ 0 , 1 ⟩ \begin{align*}
&\lim_{(\alpha, \beta) \to (0, \pi)}\sec\left(\frac{\beta - \alpha}{2}\right) \left\langle \cos\alpha + \cos\beta, \sin\alpha + \sin\beta\right\rangle\\
=&2\lim_{(\alpha, \beta) \to (0, \pi)}\sec\left(\frac{\beta - \alpha}{2}\right) \left\langle \cos\left(\frac{\alpha + \beta}{2}\right)\cos\left(\frac{\alpha - \beta}{2}\right), \sin\left(\frac{\alpha + \beta}{2}\right)\cos\left(\frac{\alpha - \beta}{2}\right)\right\rangle\\
=&2\lim_{(\alpha, \beta) \to (0, \pi)}\sec\left(\frac{\beta - \alpha}{2}\right) \left\langle \cos\left(\frac{\alpha + \beta}{2}\right)\cos\left(\frac{\beta - \alpha}{2}\right), \sin\left(\frac{\alpha + \beta}{2}\right)\cos\left(\frac{\beta - \alpha}{2}\right)\right\rangle\\
=&2\lim_{(\alpha, \beta) \to (0, \pi)}\left\langle \cos\left(\frac{\alpha + \beta}{2}\right), \sin\left(\frac{\alpha + \beta}{2}\right)\right\rangle\\
=&\ 2\Big\langle\cos\left(\frac{\pi}{2}\right), \sin\left(\frac{\pi}{2}\right)\Big\rangle\\
=&\ 2\langle 0, 1\rangle
\end{align*}
= = = = = ( α , β ) → ( 0 , π ) lim sec ( 2 β − α ) ⟨ cos α + cos β , sin α + sin β ⟩ 2 ( α , β ) → ( 0 , π ) lim sec ( 2 β − α ) ⟨ cos ( 2 α + β ) cos ( 2 α − β ) , sin ( 2 α + β ) cos ( 2 α − β ) ⟩ 2 ( α , β ) → ( 0 , π ) lim sec ( 2 β − α ) ⟨ cos ( 2 α + β ) cos ( 2 β − α ) , sin ( 2 α + β ) cos ( 2 β − α ) ⟩ 2 ( α , β ) → ( 0 , π ) lim ⟨ cos ( 2 α + β ) , sin ( 2 α + β ) ⟩ 2 ⟨ cos ( 2 π ) , sin ( 2 π ) ⟩ 2 ⟨ 0 , 1 ⟩
Finally, the semi-circle is represented by the following rational quadratic Bézier curve
P ( t ) = ( 1 − t ) 2 ⟨ 1 , 0 ⟩ + 2 t ( 1 − t ) ⟨ 0 , 1 ⟩ + t 2 ⟨ − 1 , 0 ⟩ ( 1 − t ) 2 + t 2 . P(t) = \frac{(1-t)^2\langle 1, 0\rangle + 2t(1-t) \langle 0, 1\rangle + t^2 \langle -1, 0\rangle}{(1-t)^2 + t^2}.
P ( t ) = ( 1 − t ) 2 + t 2 ( 1 − t ) 2 ⟨ 1 , 0 ⟩ + 2 t ( 1 − t ) ⟨ 0 , 1 ⟩ + t 2 ⟨ − 1 , 0 ⟩ .