Počítačová grafika 23/24


Napojování Bézierových křivek
Coonsova kubika
Coonsův kubický B-spline

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ě
$G^3 \iff G^2 + $stejná tečna grafu křivosti 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 3. stupně

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, \dots$

Bernsteinovy polynomy

$t=0$$t=1$
$B_{0,n}(t)=(1-t)^3$$1$$0$
$B_{1,n}(t)=3t(1-t)^2$$0$$0$
$B_{2,n}(t)=3t^2(1-t)$$0$$0$
$B_{3,n}(t)=t^3$$0$$1$

Spojitost napojení $C^0$

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

Bernsteinovy polynomy - první derivace

$t=0$$t=1$
$B'_{0,n}(t)=3(1-t)^2$$-3$$\phantom{-}0$
$B'_{1,n}(t)=3(1-t)(1-3t)$$\phantom{-}3$$\phantom{-}0$
$B'_{2,n}(t)=3t(2-3t)$$\phantom{-}0$$-3$
$B'_{3,n}(t)=3t^2$$\phantom{-}0$$\phantom{-}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}}$

Bernsteinovy polynomy - druhá derivace

$t=0$$t=1$
$B''_{0,n}(t)=6(1-t)$$\phantom{-1}6$$\phantom{-1}0$
$B''_{1,n}(t)=3(6t-4)$$-12$$\phantom{-1}6$
$B''_{2,n}(t)=-3(6t-2)$$\phantom{-1}6$$-12$
$B''_{3,n}(t)=6t$$\phantom{-1}0$$\phantom{-1}6$

Spojitost napojení $C^2$

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

Bernsteinovy polynomy - třetí derivace

$t=0$$t=1$
$B'''_{0,n}(t)=-6$$-\phantom{1}6$$-\phantom{1}6$
$B'''_{1,n}(t)=18$$\phantom{-}18$$\phantom{-}18$
$B'''_{2,n}(t)=-18$$-18$$-18$
$B'''_{3,n}(t)=6$$\phantom{-1}6$$\phantom{-1}6$

Spojitost napojení $C^3$

$$C^2 \land P'''(1)=Q'''(0)$$ $$\Downarrow$$ $$-6V_0+18V_1-18V_2+6V_3=-6U_0+18U_1-18U_2+6U_3$$ $$\Downarrow$$ $$U_3=-V_0+6V_1-12V_2+8V_3$$ $$\Downarrow$$ $$\color{blue}{U_3=V_1+8\vec{V_2V_3}+4\vec{V_2V_1}+\vec{V_0V_1}}$$
nebo
$$\color{blue}{U_3=V_3+6\vec{V_2V_1}+6\vec{V_2V_3}+\vec{V_0V3}}$$
nebo
$$\color{blue}{U_3=V_0+8\vec{V_2V_3}+4\vec{V_2V_1}+2\vec{V_0V_1}}$$
nebo $\dots$
$$\color{blue}{U_3=V_1+8\vec{V_2V_3}+4\vec{V_2V_1}+\vec{V_0V_1}}$$
$$\color{blue}{U_3=V_3+6\vec{V_2V_1}+6\vec{V_2V_3}+\vec{V_0V3}}$$
$$\color{blue}{U_3=V_0+8\vec{V_2V_3}+4\vec{V_2V_1}+2\vec{V_0V_1}}$$

Spojitost napojení - Rhino

$G^0$

$G^1$

$G^2$

$G^3$

de Casteljau algoritmus - $G$ spojitost

Konstrukce bodu Bézierovy kubiky ($t=\frac{3}{4}$)

Dekompozice Bézierovy kubiky

Grafy křivosti

Napojování Bézierových křivek rozdílných stupňů

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,\dots$

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

Bernsteinovy polynomy - přehled

$n$$1$$2$$3$$4$
$B_{0,n}$$1-t$$(1-t)^2$$(1-t)^3$$(1-t)^4$
$B_{1,n}$$t$$2t(1-t)$$3t(1-t)^2$$4t(1-t)^3$
$B_{2,n}$$\times$$t^2$$3t^2(1-t)$$6t^2(1-t)^2$
$B_{3,n}$$\times$$\times$$t^3$$4t^3(1-t)$
$B_{4,n}$$\times$$\times$$\times$$t^4$

Bernsteinovy polynomy - první derivace

n$1$$2$$3$$4$
t01010101
$B'_{0,n}$-1-1-2 0-3 0-4 0
$B'_{1,n}$ 1 1 2-2 3 04 0
$B'_{2,n}$$\times$$\times$ 0 2 0-3 0 0
$B'_{3,n}$$\times$$\times$$\times$$\times$ 0 3 0-4
$B'_{4,n}$$\times$$\times$$\times$$\times$$\times$$\times$ 0 4

Bernsteinovy polynomy - druhá derivace

n$1$$2$$3$$4$
t01010101
$B''_{0,n}$002260120
$B''_{1,n}$00-4-4-126-240
$B''_{2,n}$$\times$$\times$226-121212
$B''_{3,n}$$\times$$\times$$\times$$\times$060-24
$B''_{4,n}$$\times$$\times$$\times$$\times$$\times$$\times$012

Spojitost napojení $C^1$

lineární Bézierova křivka:
$U_0=V_3 \land U_1=V_3+3\vec{V_2V_3}$

kvadratická Bézierova křivka:
$U_0=V_3 \land U_1=V_3+\frac{3}{2}\vec{V_2V_3}$

kubická Bézierova křivka:
$U_0=V_3 \land U_1=V_3+\vec{V_2V_3}$

kvartická Bézierova křivka:
$U_0=V_3 \land U_1=V_3+\frac{3}{4}\vec{V_2V_3}$

Spojitost napojení $C^2$

kvadratická Bézierova křivka:
$U_0=V_3 \land U_1=V_3+\frac{3}{2}\vec{V_2V_3}\land U_2=V_1+2\vec{V_2V_1}+7\vec{V_2V_3}$

kubická Bézierova křivka:
$U_0=V_3 \land U_1=V_3+\vec{V_2V_3}\land U_2=V_1+4\vec{V_2V_3}$

kvartická Bézierova křivka:
$U_0=V_3 \land U_1=V_3+\frac{3}{4}\vec{V_2V_3}\land U_2=V_1+\frac{5}{2}\vec{V_2V_3}+\frac{1}{2}\vec{V_1V_3}$

Coonsova kubika

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

Coonsova kubika

aproximační křivka 3. stupně daná 4 řídicí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$

Coonsova kubika

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})$$

Konstrukce počátečního bodu

Počáteční bod - vlastnosti

$\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})$$

Krajní body křivky

$\mathscr{P}(0)$ je "antitěžiště" trojúhelníka $P_0P_1P_2, \mathscr{P}(1)$ je "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}$$

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

Vztah mezi Coonsovou a Bézierovou kubikou

Napojování Coonsových kubik

$C^2$ spojité napojení

řídicí polygon $P_0,P_1,P_2,P_3$ Coonsovy kubiky $\mathscr{P}(t)$
řídicí 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$

Coonsův kubický B-spline

- aproximační vícesegmentová křivka třetího stupně, jejíž segmenty jsou Coonsovy kubiky napojené s $C^2$ spojitostí

v terminologii NURBS $\Rightarrow$ Uniformní neRacionální B-Spline 3. stupně

Coonsův kubický B-spline

Dáno: $P_0, P_1, ..., P_n$

jednotlivé segmenty $k_i$ jsou Coonsovy kubiky s řídicími polygony:

$k_1 : (P_0P_1P_2P_3)$

$k_1 : (P_1P_2P_3P_4)$

$\dots$

$k_{n-3} : (P_{n-3}P_{n-2}P_{n-1}P_n)$

počet segmentů: $n-2$

Coonsův kubický B-spline otevřený

řídicí polygon $P_0,P_1,P_2,P_3,P_4$

Coonsův kubický B-spline uzavřený

řídící polygon $P_0,P_1,P_2,P_3,P_4(,P_5=P_0,P_6=P_1,P_7=P_2)$

Příště:
Interpolační křivky 3°
ukotvená kubika