Parametrické zadání
Přepišme výrazy výše do maticového tvaru P(t)=TC= \left[ \begin{array}{cccc} 1 & t & t^2 & t^3 \end{array} \right] \left[ \begin{array}{cc} a_{0,x} & a_{0,y} \\ a_{1,x} & a_{1,y} \\ a_{2,x} & a_{2,y} \\ a_{3,x} & a_{3,y} \end{array} \right] kde C určuje tvar a pozici křivky. Toto ovšem není ideální, protože nemůžeme jasně vidět, jaké vlastnosti bude mít, ani jakými body bude určena. Z uživatelského hlediska bude výhodné tyto charakteristiky oddělit. Přepíšeme výpočet na P(t)=TMP= \left[ \begin{array}{cccc} 1 & t & t^2 & t^3 \end{array} \right] \left[ \begin{array}{cccc} m_{0,0} & m_{0,1} & m_{0,2} & m_{0,3} \\ m_{1,0} & m_{1,1} & m_{1,2} & m_{1,3} \\ m_{2,0} & m_{2,1} & m_{2,2} & m_{2,3} \\ m_{3,0} & m_{3,1} & m_{3,2} & m_{3,3} \end{array} \right] \left[ \begin{array}{c} P_0 \\ P_1 \\ P_2 \\ P_3 \end{array} \right] kde M představuje druh křivky a P vstupní body. Dostali jsme tedy rozklad C=MP a zrušili nutnost definovat vlastnosti dohromady jednou maticí. Po roznásobení uvidíme, že se nám původně nepřehledný tvar vyjasnil. \begin{array}{ccc} P(t)&=&(m_{0,0}+m_{1,0}t+m_{2,0}t^2+m_{3,0}t^3)P_0+ \\ &&(m_{0,1}+m_{1,1}t+m_{2,1}t^2+m_{3,1}t^3)P_1+ \\ &&(m_{0,2}+m_{1,2}t+m_{2,2}t^2+m_{3,2}t^3)P_2+ \\ &&(m_{0,3}+ m_{1,3}t+m_{2,3}t^2+m_{3,3}t^3)P_3 \end{array} Každý bod má v konkrétním čase t vliv na bod, který leží na křivce. Tento vliv je reprezentován polynomickou funkcí třetího stupně. Řekněme, že pro přehlednost nahradíme výpočet v závorce funkcí w_i s parametrem t. P(t)=w_0(t)P_0+w_1(t)P_1+w_2(t)P_2+w_3(t)P_3 Tento tvar už jasně a jednoduše popisuje křivku určenou body P_i a váhovými funkcemi w_i(t). Právě volba zmíněných funkcí, dokáže na těch samých bodech vykreslit různé druhy křivek jako třeba Bézierovu, Fergusonovu (zde pozor, je třeba z bodů vyjádřit tečné vektory!), nebo Coonsovu.Závěr
Ukázali jsme si, jak lze odvodit parametrické křivky i jejich výhody oproti explicitně zadaným funkcím. Uveďme jen pro úplnost výpočet souřadnic x a y ať ho můžeme porovnat s tvarem uvedeným na začátku. \begin{align*} P_x(t)=w_0(t)P_{0,x}+w_1(t)P_{1,x}+w_2(t)P_{2,x}+w_3(t)P_{3,x} \\ P_y(t)=w_0(t)P_{0,y}+w_1(t)P_{1,y}+w_2(t)P_{2,y}+w_3(t)P_{3,y} \end{align*}Literatura a odkazy
KOLCUN, A. Parametrické modelovanie kriviek a plôch. Učební texty, Ostrava 2008.KOLCUN, A. Parametrick é vyjadrenie kriviek a plôch. Učební texty, Ostrava 2008.
ŽÁRA, J.; SOCHOR, J.; BENEŠ, B.; FELKEL, P. Moderní počítačová grafika. Computer press, Brno 2004.
http://herakles.zcu.cz/education/zpg/cviceni.php?no=11 - interaktivní zadávání křivek včetně teorie
Žádné komentáře:
Okomentovat