sbornÃk
sbornÃk sbornÃk
Karolína Kundrátová Bázové funkce N[i,s] stupně prvního až p-tého dle definice 2. > for s from 1 to p do > for i from 0 to nops_U-2-p do > if (uu[i+s]-uu[i]=0) > then a[i,s]:=0 > else a[i,s]:=(u-uu[i])/(uu[i+s]-uu[i])*N[i,s-1] > fi; > if (uu[i+s+1]-uu[i+1]=0) > then b[i,s]:=0 > else b[i,s]:=(uu[i+s+1]-u)/(uu[i+s+1]-uu[i+1]) > *N[i+1,s-1] > fi; > N[i,s]:=simplify(a[i,s]+b[i,s]) > od > od: Racionální bázové funkce R[i,p] stupně p dle definice 3. > for i from 0 to n do > R[i,p]:=simplify(N[i,p]*w[i]/(sum(’N[j,p]*w[j]’, > ’j’=0..n))) > od: NURBS křivka C dle definice 3. > for k from 1 to 2 do > C[k]:=simplify(sum(’R[i,p]*P[i][k]’,’i’=0..n)) > od; ⎧ ⎧ undefined u < 0 undefined u < 0 3 u (4 + 99 u) 9 u (4 + 3 u) ⎪⎨ 99 u 2 + 2 603 u 2 − 612 u + 100 C 1 = 198 u 2 − 198 u + 31 12 (27 u ⎪⎩ 2 − 52 u + 26) 99 u 2 − 198 u + 101 undefined u < 1 3 ⎪⎨ 99 u 2 + 2 u < 2 144 u 2 − 150 u + 19 C 2 = 3 198 u 2 − 198 u + 31 u ≤ 1 − ⎪⎩ 45 u2 − 18 u − 25 99 u 2 − 198 u + 101 1 < u undefined u < 1 3 u < 2 3 u ≤ 1 1 < u Zde je třeba upřesnit, že program Maple nabízí práci s knihovnou CurveFitting, která obsahuje příkazy pro výpočet křivek určených množinou řídicích bodů. Samotné NURBS křivky pomocí příkazů knihovny počítat nemůžeme, ale např. výpočet, který jsme právě komentovali, ovšem pro stejné váhy všech řídicích bodů (tj. výpočet B-spline křivky), můžeme provést pomocí příkazu BSplineCurve, jehož skladbu ukazují následující řádky (parametry byly zvoleny stejně jako ve výpočtu uvedeném výše): 132 > with(CurveFitting): > simplify(BSplineCurve([0,1,3,4,6],[0,3,1,5,-1], > u,order=3,knots=[0,0,0,1/3,2/3,1,1,1]));
NURBS REPREZENTACE KŘIVEK V MAPLE Pro potřeby výuky a hlubší pochopení celého problému je ale vlastní výpočet, ve kterém je názorně užitá definice NURBS křivek, vhodnější. 2.2 Příklady NURBS křivek K tomu, abychom mohli vhodně demonstrovat vliv změny volitelných parametrů (váha bodu, stupeň křivky, uzlový vektor) na tvar NURBS křivky, jsme zvolili křivku určenou 16 řídicími body. Z důvodu nedostatku místa nebudeme uvádět matematické reprezentace jednotlivých křivek, ale uvedeme jejich grafy. Hodnoty parametrů jednotlivých křivek jsou upřesněny pod každým obrázkem. Obr. 1: Křivky 12. stupně. Odleva: w i = 1, uniformní U. w 4 = 20, ostatní w i = 1, uniformní U. w i = 1, neuniformní U = {0, . . . , 0, 1 } {{ } 5 , 2 3 , 7 8 , 1, . . . , 1 } } {{ } 13× 13× 133
- Page 82 and 83: Henryk Gliński polynomial. The coe
- Page 84 and 85: ÊÓÑÒÀõ ÎÖÚÑÓúÒÓÔÖÓ
- Page 86 and 87: ÊÓÑÒÀõ ÃõÒÐÓÝ´ÚÞÇÖ
- Page 88 and 89: ÊÓÑÒÀõ ÈÖÓÖÑÓÒ ÒÑÞ
- Page 90 and 91: Oldřich Hykš foundations and simp
- Page 92 and 93: Oldřich Hykš The choice of the tr
- Page 94 and 95: Oldřich Hykš discussed together w
- Page 96 and 97: Petr Kahánek, Alexej Kolcun 2 Tria
- Page 98 and 99: Petr Kahánek, Alexej Kolcun of thi
- Page 100 and 101: Petr Kahánek, Alexej Kolcun Now we
- Page 102 and 103: Petr Kahánek, Alexej Kolcun In the
- Page 104 and 105: Mária Kmeťová Bernsteinove polyn
- Page 106 and 107: Mária Kmeťová H 0 O H 1 V 1 V 2
- Page 108 and 109: Mária Kmeťová Na obrázku 5 je k
- Page 110 and 111: Mária Kmeťová 6 Záver Program E
- Page 112 and 113: Milada Kočandrlová Pro body X eli
- Page 114 and 115: Milada Kočandrlová Podmínku cykl
- Page 116 and 117: Milada Kočandrlová 6 Homotetický
- Page 118 and 119: Jiří Kosinka medial axis transfor
- Page 120 and 121: Jiří Kosinka Figure 3: Asymptotic
- Page 122 and 123: Jiří Kosinka a) b) Figure 4: a) F
- Page 124 and 125: Iva Křivková • body (např. Bri
- Page 126 and 127: Iva Křivková V trojrozměrném eu
- Page 128 and 129: Iva Křivková asymptoty). V tomto
- Page 130 and 131: Karolína Kundrátová myslíme roz
- Page 134 and 135: Karolína Kundrátová Obr. 2: Kři
- Page 136 and 137: Miroslav Lávička of this article
- Page 138 and 139: Miroslav Lávička if 〈x, x〉 M
- Page 140 and 141: Miroslav Lávička n: x - x = 0 0 4
- Page 142 and 143: Miroslav Lávička 5 Conclusion In
- Page 144 and 145: Pavel Leischner Věta 1 (ptolemaiov
- Page 146 and 147: Pavel Leischner Věta 2 (Ptolemaiov
- Page 148 and 149: Pavel Leischner Literatura [1] Enge
- Page 150 and 151: Ivana Linkeová Je-li hodnota výra
- Page 152 and 153: Ivana Linkeová jednotkové váhy.
- Page 154 and 155: Ivana Linkeová funkce jsou pro u 0
- Page 156 and 157: Dalibor Martišek systémech, je po
- Page 158 and 159: Dalibor Martišek Zvládneme-li pra
- Page 160 and 161: Dalibor Martišek (což je jednoduc
- Page 162 and 163: Katarína Mészárosová vedcov nov
- Page 164 and 165: Katarína Mészárosová Obrázok 1
- Page 166 and 167: Katarína Mészárosová Analogicky
- Page 168 and 169: Katarína Mészárosová pocit krá
- Page 170 and 171: Martin Němec do databáze, popří
- Page 172 and 173: Martin Němec Obrázek 3: Modul pro
- Page 174 and 175: Martin Němec Literatura [1] J. Ziv
- Page 176 and 177: Stanislav Olivík 2 Hledání odraz
- Page 178 and 179: Stanislav Olivík S 1 Q i+2 P Q Q i
- Page 180 and 181: Stanislav Olivík Metoda popsaná v
Karolína Kundrátová<br />
Bázové funkce N[i,s] stupně prvního až p-tého dle definice 2.<br />
> for s from 1 to p do<br />
> for i from 0 to nops_U-2-p do<br />
> if (uu[i+s]-uu[i]=0)<br />
> then a[i,s]:=0<br />
> else a[i,s]:=(u-uu[i])/(uu[i+s]-uu[i])*N[i,s-1]<br />
> fi;<br />
> if (uu[i+s+1]-uu[i+1]=0)<br />
> then b[i,s]:=0<br />
> else b[i,s]:=(uu[i+s+1]-u)/(uu[i+s+1]-uu[i+1])<br />
> *N[i+1,s-1]<br />
> fi;<br />
> N[i,s]:=simplify(a[i,s]+b[i,s])<br />
> od<br />
> od:<br />
Racionální bázové funkce R[i,p] stupně p dle definice 3.<br />
> for i from 0 to n do<br />
> R[i,p]:=simplify(N[i,p]*w[i]/(sum(’N[j,p]*w[j]’,<br />
> ’j’=0..n)))<br />
> od:<br />
NURBS křivka C dle definice 3.<br />
> for k from 1 to 2 do<br />
> C[k]:=simplify(sum(’R[i,p]*P[i][k]’,’i’=0..n))<br />
> od;<br />
⎧<br />
⎧<br />
undefined u < 0 undefined u < 0<br />
3 u (4 + 99 u)<br />
9 u (4 + 3 u)<br />
⎪⎨ 99 u 2 + 2<br />
603 u 2 − 612 u + 100<br />
C 1 =<br />
198 u 2 − 198 u + 31<br />
12 (27 u<br />
⎪⎩<br />
2 − 52 u + 26)<br />
99 u 2 − 198 u + 101<br />
undefined<br />
u < 1 3 ⎪⎨ 99 u 2 + 2<br />
u < 2 144 u 2 − 150 u + 19<br />
C 2 =<br />
3 198 u 2 − 198 u + 31<br />
u ≤ 1 − ⎪⎩<br />
45 u2 − 18 u − 25<br />
99 u 2 − 198 u + 101<br />
1 < u undefined<br />
u < 1 3<br />
u < 2 3<br />
u ≤ 1<br />
1 < u<br />
Zde je třeba upřesnit, že program Maple nabízí práci s knihovnou<br />
CurveFitting, která obsahuje příkazy pro výpočet křivek určených<br />
množinou řídicích bodů. Samotné NURBS křivky pomocí příkazů<br />
knihovny počítat nemůžeme, ale např. výpočet, který jsme právě<br />
komentovali, ovšem pro stejné váhy všech řídicích bodů (tj. výpočet<br />
B-spline křivky), můžeme provést pomocí příkazu BSplineCurve, jehož<br />
skladbu ukazují následující řádky (parametry byly zvoleny stejně<br />
jako ve výpočtu uvedeném výše):<br />
132<br />
> with(CurveFitting):<br />
> simplify(BSplineCurve([0,1,3,4,6],[0,3,1,5,-1],<br />
> u,order=3,knots=[0,0,0,1/3,2/3,1,1,1]));