Počítačová grafika

Napojování křivek
Coonsova kubika

Napojování křivek

  • spojitost geometrická - $G^n$
  • spojitost parametrická - $C^n$

Geometrická spojitost napojení 2 křivek

$G^0 \iff$ společný bod
$G^1 \iff G^0 + $stejná tečna ve společném bodě
$G^2 \iff G^1 +$ stejná křivost ve společném bodě

Parametrická spojitost napojení 2 křivek

Pro dvě uniformní křivky $P(t)$ a $Q(s)$:

$C^0 \iff P(1)=Q(0)$
$C^1 \iff C^0 \land P'(1)=Q'(0)$
$C^2 \iff C^1 \land P''(1)=Q''(0)$
...

spojitost parametrická $\Rightarrow$ spojitost geometrická

Napojování Bézierových křivek - kubik

Křivka $P(t)$: řídící polygon $V_i, i=0,1,2,3$

Křivka $Q(s)$: řídící polygon $U_i, i=0,1,2,3$

Odvození podmínek pro umístění řídících bodů $U_i$, tak aby napojení bylo $C^0, C^1, C^2$.

Spojitost napojení $C^0$

$$P(1)=Q(0) \Rightarrow \color{blue}{U_0=V_3}$$

Spojitost napojení $C^1$

$C^0 \land P'(1)=Q'(0)$
$V_3-V_2 = U_1-U_0 \Rightarrow \color{blue}{U_1=U_0+\vec{V_2V_3}}$

Spojitost napojení $C^2$

$C^1 \land P''(1)=Q''(0)$

Druhé derivace Bernsteinových polynomů:

$$\begin{matrix}\phantom{000}B''_{03}(t)=6-6t\\ \phantom{000000}B''_{13}(t)=-12+18t\\ \phantom{0000}B''_{23}(t)=6-18t\\ B''_{33}(t)=6t\end{matrix}$$
$6V_1-12V_2+6V_3=6U_0-12U_1+6U_2 \Rightarrow \color{blue}{U_2=V_1+4\vec{V_2V_3}}$

Grafy křivostí napojených kubik

$C^0$

$C^1$

$C^2$

Coonsova kubika

Steven Anson Coons (1912 - 1979)
Massachusetts Institute of Technology (MIT)

Coonsova kubika

aproximační křivka 3. stupně daná 4 řídícími body $P_0, P_1, P_2, P_3$

vektorová rovnice:

$$\mathscr{P}(t)=C_0(t)P_0 + C_1(t)P_1 + C_2(t)P_2 + C_3(t)P_3,\ t\in[0,1]$$
Coonsovy polynomy

$C_0(t)=\frac{1}{6}(1-t)^3$
$C_1(t)=\frac{1}{6}(3t^3-6t^2+4)$
$C_2(t)=\frac{1}{6}(-3t^3+3t^2+3t+1)$
$C_3(t)=\frac{1}{6}t^3$

Vlastnosti Coonsovy kubiky

Coonsovy a Bernsteinovy polynomy - průběhy

Počáteční bod křivky

$$\mathscr{P}(0)=\frac{1}{6}P_0 + \frac{2}{3}P_1 + \frac{1}{6}P_2\\ \Downarrow\\ \mathscr{P}(0)=P_1 + \frac{1}{6}(P_0-P_1) + \frac{1}{6}(P_2-P_1)\\ \Downarrow\\ \mathscr{P}(0)=P_1 + \frac{1}{2}(\frac{1}{3}\vec{P_1P_0}+\frac{1}{3}\vec{P_1P_2})$$
$\mathscr{P}(0)$ je tzv. antitěžiště trojúhelníka $P_0P_1P_2$

Koncový bod křivky

$$\mathscr{P}(1)=\frac{1}{6}P_1 + \frac{2}{3}P_2 + \frac{1}{6}P_3\\ \Downarrow\\ \mathscr{P}(1)=P_2 + \frac{1}{2}(\frac{1}{3}\vec{P_2P_1}+\frac{1}{3}\vec{P_2P_3})$$
$\mathscr{P}(1)$ je tzv. antitěžiště trojúhelníka $P_1P_2P_3$

Počáteční a koncový tečný vektor

derivace Coonsových polynomů:
$C'_0(t)=-\frac{1}{2}(1-t)^2$
$C'_1(t)=\frac{1}{2}(3t^2-4t)$
$C'_2(t)=\frac{1}{2}(-3t^2+2t+1)$
$C'_3(t)=\frac{1}{2}t$

$$\mathscr{P}'(0)=-\frac{1}{2}P_0 + \frac{1}{2}P_2 = \frac{1}{2}\vec{P_0P_2}$$
$$\mathscr{P}'(1)=-\frac{1}{2}P_1 + \frac{1}{2}P_3 = \frac{1}{2}\vec{P_1P_3}$$

Vztah mezi Coonsovou a Bézierovou kubikou

Napojování Coonsových kubik

$C^2$ spojité napojení

řídící polygon $P_0,P_1,P_2,P_3$ Coonsovy kubiky $\mathscr{P}(t)$
řídící polygon $R_0,R_1,R_2,R_3$ Coonsovy kubiky $\mathscr{R}(s)$

$C^0 \iff \frac{1}{6}P_1 + \frac{2}{3}P_2 + \frac{1}{6}P_3 = \frac{1}{6}R_0 + \frac{2}{3}R_1 + \frac{1}{6}R_2$
$C^1 \iff C^0 \land -\frac{1}{2}P_1+\frac{1}{2}P_3=-\frac{1}{2}R_0+\frac{1}{2}R_2$
$C^2 \iff C^1 \land P_1-2P_2+P_3=R_0-2R_1+R_2$

soustava 3 rovnic pro neznámé $R_0,R_1,R_2$ $\Rightarrow$ jediné řešení $R_0=P_1$, $R_1=P_2$, $R_2=P_3$

Příště: Coonsův kubický b-spline,
ukotvená kubika