Křivky a plochy II. Petr Felkel. Katedra počítačové grafiky a interakce, ČVUT FEL místnost KN:E-413 na Karlově náměstí

Podobné dokumenty
FERGUSONOVA KUBIKA. ( u) ( ) ( ) X s X s. Kubický spline C 2 má dva stupně volnosti Q 1 Q 2

Ivana Linkeová SPECIÁLNÍ PŘÍPADY NURBS REPREZENTACE. 2 NURBS reprezentace křivek

Jana Dannhoferová Ústav informatiky, PEF MZLU

Aproximační křivky. Trocha historie. geometrické modelování veliký pokrok v oblasti letectví 1944 Roy Liming

Aproximační křivky. Trocha historie. geometrické modelování veliký pokrok v oblasti letectví 1944 Roy Liming

Kristýna Bémová. 13. prosince 2007

u (x i ) U i 1 2U i +U i+1 h 2. Na hranicích oblasti jsou uzlové hodnoty dány okrajovými podmínkami bud přímo

Matematika I A ukázkový test 1 pro 2018/2019

Křivky a plochy technické praxe

Dá se ukázat, že vzdálenost dvou bodů má tyto vlastnosti: 2.2 Vektor, souřadnice vektoru a algebraické operace s vektory

Geometrické transformace pomocí matic

Plochy počítačové grafiky II. Interpolační plochy Bezierovy pláty nad obdélníkovou a trojúhelníkovou sítí Recionální Bezierovy pláty B-spline NURBS

PRACOVNÍ SEŠIT ANALYTICKÁ GEOMETRIE. 8. tematický okruh: Připrav se na státní maturitní zkoušku z MATEMATIKY důkladně, z pohodlí domova a online

4.4 Exploratorní analýza struktury objektů (EDA)

PRUŽNOST A PLASTICITA

Numerická matematika 1. t = D u. x 2 (1) tato rovnice určuje chování funkce u(t, x), která závisí na dvou proměnných. První

Výpočet průsečíků paprsku se scénou

8a.Objektové metody viditelnosti. Robertsův algoritmus

MĚŘENÍ INDUKČNOSTI A KAPACITY

Bézierovy křivky Bohumír Bastl KMA/GPM Geometrické a počítačové modelování Bézierovy křivky GPM 1 / 26

Základní vlastnosti ploch

KMA/GPM Barycentrické souřadnice a

Literatura: Kapitola 5 ze skript Karel Rektorys: Matematika 43, ČVUT, Praha, Text přednášky na webové stránce přednášejícího.

Maticová exponenciála a jiné maticové funkce

Výpočet průsečíků paprsku se scénou

2.5. MATICOVÉ ŘEŠENÍ SOUSTAV LINEÁRNÍCH ROVNIC

Základní vlastnosti křivek

transformace je posunutí plus lineární transformace má svou matici vzhledem k homogenním souřadnicím [1]

1. Určení vlnové délka světla pomocí difrakční mřížky

Numerická matematika A

Počítačová grafika RHINOCEROS

Interpolační křivky. Interpolace pomocí spline křivky. f 1. f 2. f n. x... x 2

Vzorce počítačové grafiky

2. ELEKTRICKÉ OBVODY STEJNOSMĚRNÉHO PROUDU

NURBS REPREZENTACE KŘIVEK V MAPLE

KŘIVKY A PLOCHY. Obrázky (popř. slajdy) převzaty od

LOGICKÉ OBVODY J I Ř Í K A L O U S E K

5. Plochy v počítačové grafice. (Bézier, Coons)

Zavedeme-li souřadnicový systém {0, x, y, z}, pak můžeme křivku definovat pomocí vektorové funkce.

Subdivision křivky a plochy

A u. jsou po řadě počáteční a koncové body úsečky; t je parametr:

Nelineární model tepelné soustavy a GPC regulátor

- 1 - Obvodová síla působící na element lopatky větrné turbíny

[obrázek γ nepotřebujeme, interval t, zřejmý, integrací polynomu a per partes vyjde: (e2 + e) + 2 ln 2. (e ln t = t) ] + y2

Příloha. Externí stabilita. Obr. 11 Výpočetní schéma opěrné stěny pro potřeby externí stability. Výška opěrné stěny

6. ANALYTICKÁ GEOMETRIE

Matice. Je dána matice A R m,n, pak máme zobrazení A : R n R m.

Pružnost a plasticita II

POČÍTAČOVÁ GRAFIKA - PGR PROGRAM PŘEDNÁŠEK. Po 9:00-10:30, KN:A-214

Plochy zadané okrajovými křivkami

Přednášky část 4 Analýza provozních zatížení a hypotézy kumulace poškození, příklady. Milan Růžička

REGRESNÍ ANALÝZA. 13. cvičení

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

MODELOVÁNÍ A SIMULACE

Křivky a plochy I. Petr Felkel. Katedra počítačové grafiky a interakce, ČVUT FEL místnost KN:E-413 na Karlově náměstí

Matematika II, úroveň A ukázkový test č. 1 (2018) 1. a) Napište postačující podmínku pro diferencovatelnost funkce n-proměnných v otevřené

Monte Carlo metody Josef Pelikán CGG MFF UK Praha.

Vyplňování souvislé oblasti

NUMERICAL INTEGRATION AND DIFFERENTIATION OF SAMPLED TIME SIGNALS BY USING FFT

Matematika II, úroveň A ukázkový test č. 1 (2016) 1. a) Napište postačující podmínku pro diferencovatelnost funkce n-proměnných v otevřené

Matematický ústav UK Matematicko-fyzikální fakulta

Iterační výpočty. Dokumentace k projektu pro předměty IZP a IUS. 22. listopadu projekt č. 2

11 Tachogram jízdy kolejových vozidel

Matematika pro real-time grafiku

Rhino - základní příkazy

ZESILOVAČE S TRANZISTORY

Numerické metody optimalizace

Obsah. 1 Protokoly Diffieho-Hellmanův a ElGamalův. 3 Hledání generátoru v Z p

Matematika II, úroveň A ukázkový test č. 1 (2017) 1. a) Napište postačující podmínku pro diferencovatelnost funkce n-proměnných v otevřené

Elementární křivky a plochy

Matematický ústav UK Matematicko-fyzikální fakulta

Zobrazování těles. problematika geometrického modelování. základní typy modelů. datové reprezentace modelů základní metody geometrického modelování

= + + R. u 1 = N R R., protože proud: i je protlačován napětím: u 1P ve smyčce

4EK211 Základy ekonometrie

L8 Asimilace dat II. Oddělení numerické předpovědi počasí ČHMÚ 2007

3. SB 3. SC. Kružnice nemá s úběžnicí žádný společný bod. Obraz nemá žádný nevlastní bod. Tímto obrazem je křivka zvaná elipsa.

Úvod Typy promítání Matematický popis promítání Implementace promítání Literatura. Promítání. Pavel Strachota. FJFI ČVUT v Praze

POTENCIÁL ELEKTRICKÉHO POLE ELEKTRICKÉ NAPĚTÍ

TRANSFORMACE BLOKOVÉHO SCHÉMATU NA CELKOVÝ PŘENOS

9 Prostorová grafika a modelování těles

Tepelná kapacita = T. Ē = 1 2 hν + hν. 1 = 1 e x. ln dx. Einsteinův výpočet (1907): Soustava N nezávislých oscilátorů se stejnou vlastní frekvencí má

7.2.3 Násobení vektoru číslem I

4 Parametry jízdy kolejových vozidel

Katedra obecné elektrotechniky Fakulta elektrotechniky a informatiky, VŠB - TU Ostrava

Mechatronické systémy s elektronicky komutovanými motory

7. ZÁKLADNÍ TYPY DYNAMICKÝCH SYSTÉMŮ

Numerická integrace konstitučních vztahů

Čebyševovy aproximace

( ) Sčítání vektorů. Předpoklady: B. Urči: a) S. Př. 1: V rovině jsou dány body A[ 3;4]

Počítačová geometrie I

15. listopadu Matematický ústav UK Matematicko-fyzikální fakulta. Hermitovská interpolace

Afinní transformace Stručnější verze

Michal Zamboj. December 23, 2016

Vyměníme druhý řádek s posledním a vynulujeme 2. sloupec pod diagonálou:

Pružnost a plasticita II

Střídavý proud v životě (energetika)

1. a) Určete parciální derivace prvního řádu funkce z = z(x, y) dané rovnicí z 3 3xy 8 = 0 v

Přemysl Žiška, Pravoslav Martinek. Katedra teorie obvodů, ČVUT Praha, Česká republika. Abstrakt

4EK211 Základy ekonometrie

Offsety KMA/ITG Informační technologie ve vyučování geometrie Offsety ITG 1 / 33

Transkript:

Křvky a plochy II Petr Felkel Katedra počítačové grafky a nterakce, ČVUT FEL místnost KN:E-4 na Karlově náměstí E-mal: felkel@fel.cvt.cz S požtím materálů Bohslava Hdce, Jaroslava Slopa a úprav Vlastmla Havrana Poslední změna:.5.206

Křvky a plochy II Křvky složené z obloků (B-splne křvky) a) Unformní kbcký B-splne (Coonsův) b) Nenformní kbcký B-splne (Uzlový vektor a konstrkce bázových fnkcí) c) Nenformní kbcký raconální B-splne (NURBS) NURBS plochy 2

Splne Splne = dlohý prožek dřeva nebo kov [Lngea Lexcon 02], křvítko hladce se ohýbá (se spojto drho dervací) = obecněj lbovolná polynomální křvka Splne třídy C n = křvka, která smlje chování křvítka skládá se ze segmentů segmenty jso polynomální křvky (stpně n+) Q (0) segment zel Q () = Q 2 (0) segmenty napojení segmentů (zly, knots) mají C n spojtost, tj. mají spojté 0,,, n-té dervace Q 2 ()

Splne [Leven PhD 2009] 4

Splne nejčastěj kbky V grafce se nejčastěj požívají splne křvky třídy C 2 jso dostatečně hladké (parametrcká spojtost C 2 ) zvládno S-tvar lze je počítat (stpeň křvky n = (kbky) => řád aproxmace k = 4 vz dále) Největší problém: NOTACE (každý pramen troch jnak) 5

Splne a B-splne splne - obloky, které procházejí opěrným body => nterpolační křvka - řešení sostav rovnc -změna polohy bod ovlvní celo křvk (global control) B-splne ( B = bass) - neprochází zadaným body => aproxmační křvka - dosazení řídících bodů do vzorce (mísí se v poměr daném bázovým fnkcem) -změna polohy bod ovlvní jen malé okolí bod (local control) 6

Splne - mnosnova B-splne křvky - nformní B-splne - nenformní B-splne - raconální nenformní B-splne (NURBS) Notace je stpeň polynom křvky (např. = -> kbky) je řád křvky k=n+ =počet bodů defnjících jeden oblok maxmální ndex řídícího bod (pro jeden oblok je =) + počet řídících bodů P,P,,P,, parametr 7

a) Unformní kbcký B-splne 8

Unformní kbcký B-splne Unformní kbcký B-splne (Coonsův kbcký B-splne) vznkne navázáním Coonsových kbckých křvek p 2 p 5 p Q () Q 4 () Q 5 () p 4 = = 4 =5,6 p 0 p Oblok Q rčen body P 0, P, P 2, P násobeným bázem C 0 C C 2 C Oblok Q 4 rčen body P, P 2, P, P 4 násobeným bázem C C 2 C C 4 Oblok Q 5 rčen body P 2, P, P 4, P 5 násobeným bázem C 2 C C 4 C 5 9

Unformní kbcký B-splne Coonsova kbka jeden segment samostatně Řídcí body p j, j = 0,, 2, Q() p C j(),.., j j 0 0 C 0 () =/6 (-), C () = /6 ( 6 2 + 4), C 2 () = /6 (- + 2 + + ), C () = /6, 0 (Pro složky x, y a z) p 0 p Q (0) 4 6 6 C C 2 C 0 C 0 p 2 Q () p 0

Unformní kbcký B-splne Coonsova kbka jeden -tý segment jako část B-splne křvky =,4,,m Řídcí body p k, k = -+j, j = 0,, 2, Q() p j C j(), 0.., j 0 C - () = /6 ( - ), C -2 () = /6 ( 6 2 + 4), C - () = /6 (- + 2 + + ), C () = /6, 0 p -2 Q (0) 4 6 6 C -2 C - C - C 0 Q Q () p - kde Q je segment B-splne kbky P je řídící bod C je bázová fnkce (vlv bod P ) p - p

Unformní kbcký B-splne Coonsova kbka -tý segment jako část B-splne křvky matcově 2,.. (), C p () Q j j j - 0 0 C - () = /6( ) = /6(- + 2 +) C -2 () = /6 ( 6 2 + 4), C - () = /6 (- + 2 + + ), C () = /6, 0 t t t t P P P P Q 2 2 0 4 0 0 0 6 6 ] [ ) ( C - po slopcích T Cp Q ) ( t t t t P P P P 2 p ) ( 2 C - C -2 C - C Matcově t z y x P

Unformní kbcký B-splne Coonsova kbka -tý segment jako část B-splne křvky matcově t t t t P P P P Q 2 2 0 4 0 0 0 6 6 ] [ ) ( C - po slopcích T Cp Q ) ( ) ( 2 t t t t P P P P Q 2 2 0 6 0 0 0 4 6 ] [ ) ( 2 ) ( Varanta a) Varanta b) Varanty záps dvě různá pořadí řádek matce

Unformní kbcký B-splne Coonsova kbka bázové fnkce v jednom nterval C C 2 vlv bod P vlv bod P 2 vlv bod P 0 C 0 C 0 vlv bod P p p 2 Q (0) Q () p 0 p 4

Unformní kbcký B-splne Coonsův kbcký B-splne bázové fnkce z pohled vlv bodů vlv bod P 0 vlv bod P vlv bod P 2 vlv bod P C C 2 C 0 C 0 p p 2 Q (0) Q () p 0 p 5

Unformní kbcký B-splne Coonsův kbcký B-splne bázové fnkce z pohled vlv bodů vlv bod P vlv bod P 2 vlv bod P vlv bod P C 2 C C - C + p 2 p Q (0) Q () p p 6

Unformní kbcký B-splne Coonsův kbcký B-splne bázová fnkce vlv jednoho bod vlv bod P C C 2 C C 2 C 0 C + +2 Bod má vlv na dva ntervaly nalevo a dva napravo (dál ž ne, dál je vlv 0) 7

Unformní kbcký B-splne Coonsův kbcký B-splne bázové fnkce vlv jednoho bod vlv bod P + +2 + +4 Bod má vlv na dva ntervaly nalevo a dva napravo (stpeň křvky je n=, řád je k=4 a to je počet ovlvněných ntervalů) Obecně ovlvní ntervalů, nalevo napravo 8

Unformní kbcký B-splne Coonsův kbcký B-splne bázové fnkce z pohled bod vlv bod P C ( ) C 2 C 2 ( + ) C ( +2 ) C 0 C C 0 ( + ) + +2 + +4 Bod má vlv na dva ntervaly nalevo a dva napravo Vektor hodnot tvoří zlový vektor Pro nformní B-splne se krok parametr ( + ) rovná konstantě, typcky 9

Unformní kbcký B-splne jeden oblok Bázové fnkce pro kbcký B-splne (k=4) a zlový vektor B 0 () B () B 2 () B () m = 0 2 4 5 6 7 Q () Na nakreslení jednoho oblok v nterval -4 potřebjeme 4 řídící body + 4 bázové fnkce Na defnc 4 bázových fnkcí potřebjeme navíc ntervaly nalevo a ntervaly napravo - ++=7 ntervalů, ty mají 8 konců = počet ř.bodů + řád k Proto má zlový vektor na obo koncích ntervaly navíc Uzlový vektor [0,,2,,4,5,6,7] - délka 4+4=8, kreslí se od k- do m+, tj. od do 4 2

Unformní kbcký B-splne Unformní kbcký B-splne (Coonsův kbcký B-splne) p 2 p 5 p Q () Q 4 () Q 5 () p 4 p 0 p P 0, P,, P m Řídící body, m je maxmální ndex m + Počet řídících bodů = počet požtých bází B () m 2 Počet segmentů B-splne křvky (obloků) m +5 počet zlů v zlovém vektor (počet bodů + řád k = m++4) k = 4 je řád křvky (kbka, stpeň n=, řád k = n+ = 4) Př. body P 0, P,, P 5, m=5, 6 řídících bodů, segmenty, 0 zlů 22

Unformní kbcký B-splne Bázové fnkce pro kbcký B-splne (k=4) a zlový vektor B 0 () B () B 2 () B () B 4 () B 5 () 0 2 4 5 6 7 8 9 Řídící body P 0 P P 2 P P 4 P 5 Uzlový vektor [0,,2,,4,5,6,7,8,9] - rozsah parametr pro defnc bázových fnkcí (vz dále) 2

Unformní kbcký B-splne Bázové fnkce pro kbcký B-splne (k=4) a zlový vektor B 0 () B () B 2 () B () B 4 () B 5 () 0 2 4 5 6 7 8 9 Rozsah parametr vykreslené křvky ( obloky) 6 bodů na segmenty => 6 bázových fnkcí (jedna 6x posntá) Uzlový vektor [0,,2,,4,5,6,7,8,9] délky 6+4 = 0 (krok = => nformní) Požje se na defnc bázových fnkcí (6 fcí, 0 zlů) - vz dále Kreslí se od k- do m+, tj. od do 6 Q () Q 4 () Q 5 () 24

Konstrkce bázových fnkcí Prncp konstrkce bázových fnkcí f (t) Lneární nterpolace bodů A,B t=0 t x(t) -t t= B (P ) x(t) = (-t). A + t B A (P 0 ) Zobecnění lneární nterpolace - A, B jso fnkce parametr t f(t) = (-t) f 0 (t) + t f (t) Pls reparametrzace z rozsah t t t 2 do 0 t t' t t 2 t t 0 t 0 t t t 2 25

Konstrkce bázových fnkcí Konstrkce bázových (mísících) fnkcí f (t) dále je značíme N,k!!! Obr. zjednodšen na ekvdstantní dělení nterval parametr t f f 2 f k= (řád B-splne) 0 2 4 5 t f 2 f 2 k=2 z lneárních fcí 0 2 4 5 f t k= (z kvadrk) 0 2 4 5 t 26

Nenformní kbcký B-splne B-splne fnkce (báze) Uzlový vektor T [t t 0, t t,..., t k, t k...t m, t,... t pro 0,..., m k B-splne fnkce N,k (t) řád k algortms Cox de Boor m mk ]. pro k N 2. pro k N,,k (t) (t) 0 t t t pro ostatní t Lneární nterpolace bází s k (t t ) (tk t) N, k-(t) N (t t ) (t t ) k- pro kde 0,,..., m k, k- (t), 27

Algortms Cox de Boor B-splne fnkce N,k (t) rozepsané do řád k = 4 N N N N,, 2,, 4 (t) (t) (t) (t) pro t t t 0 pro ostatnít (t-t ) N (t), (t -t ) (t-t ) N (t), 2 (t -t ) 2 (t-t ) N (t), (t -t ) kde 0,,..., m Defnováno 0/0 = 0 (t (t (t (t (t (t 2 4 t) 2 N t ) t) N t ) t) 4 N t ),, 2, (t), (t), (t), Lneární nterpolace bází nžšího řád vlevo vpravo t t t t + t +2 vlevo vpravo t t t + t + t +4 Dvojce ntervalů posntých o, které se překrývají t 28

Konstrkce bázových fnkcí,2 0,8 0,6 0,4 0,2 N, N+, N+2, N,2 N+,2 N, 0-0,2 0 0,5,5 2 2,5,5 29

Konstrkce bázových fnkcí,2 0,8 0,6 0,4 0,2 N, N+, N+2, N,2 N+,2 N, 0-0,2 0 0,5,5 2 2,5,5 0

Konstrkce bázových fnkcí,2 0,8 0,6 0,4 0,2 N, N+, N+2, N,2 N+,2 N, 0-0,2 0 0,5,5 2 2,5,5

Konstrkce bázových fnkcí,2 0,8 0,6 0,4 0,2 N, N+, N+2, N,2 N+,2 0-0,2 0 0,5,5 2 2,5,5 2

Konstrkce bázových fnkcí,2 0,8 0,6 0,4 0,2 N,2 N+,2 roste KLES * N,2 * N+,2 0-0,2 0 0,5,5 2 2,5,5

Konstrkce bázových fnkcí,2 0,8 0,6 0,4 0,2 N,2 N+,2 * N,2 * N+,2 N, 0-0,2 0 0,5,5 2 2,5,5 4

Vlastnost bázových fnkcí N,k Vlastnost B-splne fnkcí N,k (t). Poztvta: N,k (t) >= 0 pro všechna,k a t. 2. Doplňjí se do jednčky: N,k (t) =, pro 0, m+k t t 0, t m+k. Lokalta: N,k (t) = 0, pro všechna t (t, t +k ) - tj. pro k úseků 4. Dferencovatelnost: C 0,C,..,C k-2 Pro t < t < t + jso (k-2) krát spojtě dferencovatelné. (třídy C k-2 ) Pro p-násobný zlový bod t je v bodě t (k-p-) krát spojtě dferencovatelná. C 0,C,..,C k-p- 5. Jedné maxmm: N,k (t) ho má pro všechna = 0,,...m, a k 6. Unformní B-splne fnkce: ekvdstantní ntervaly zlů t = (t ) ( k t) N,k(t) N, k-(t) N, k-(t), kde 0,,...,m (k ) k 7. Perodcké B-splne fnkce: N,k (t) = N +k,k (t-k). 5

Unformní kbcký B-splne Unformní kbcký B-splne kbcký (nejvyšší stpeň polynom je n=) => řád k = 4 (k =n+) Uzlový vektor [ 0,, 2,, 4, 5, 6, 7, 8, 9 ], < + 0 pro 6 bodů [ 0,,.., k-, k,, m+,, m+k ] pro m+ bodů ( +,- ) = konst 0 proto nformní aproxmje zadané řídící body P 0, P,, P m zarčje C 2 spojtost v zlech Řídící body lze OPAKOVAT (místt více bodů na stejné místo) snžje se tím spojtost lze dosáhnot nterpolace (k-) násobným bodem křvka prochází 6

Unformní kbcký B-splne Vlv opakování řídících bodů na koncích Trojnásobný koncový bod Bez opakování řídících bodů U = [0,,2,,4,5,6,7,8,9,0,] 8 bodů 5 segmentů U = [0,,2,,4,5,6,7,8,9] 6 bodů segmenty Trojnásobný koncový počáteční bod (k-) násobný prochází bodem U = [0,,2,,4,5,6,7,8,9,0,,2,] 0 bodů 7 segmentů 7

Unformní kbcký B-splne Vlv opakování řídících bodů vntř Dvojnásobný vntřní bod Bez opakování řídících bodů U = [0,,2,,4,5,6,7,8,9,0] 7 bodů 4 segmenty U = [0,,2,,4,5,6,7,8,9] 6 bodů segmenty Trojnásobný vntřní bod U = [0,,2,,4,5,6,7,8,9,0,] 8 bodů 5 segmentů 8

b) Nenformní kbcký B-splne NUBS 9

Nenformní kbcký B-splne Nenformní kbcký B-splne kbcký (nejvyšší stpeň polynom je n=) => řád k = 4 (k =n+) Uzlový vektor [ 0,,.., k-, k,, m+,, m+k ], +, ( + - ) konst proto nenformní Q () kde N () j, p j0 j jso rekrzívně defnované míchací fnkce, m 2 tj., m-2 segmentů N j, (), 0.., 40

Nenformní kbcký B-splne Nenformní kbcký B-splne ( + - ) konst proto nenformní může být roven 0 (opakjí se hodnoty v zlovém vektor) => křvka se přblžje řídícím bod až jím projde (př k- stejných hodnot) NB-splne lze dontt k nterpolac řídícího bod. opakováním řídícího bod (jako nformních B-splne) 2. opakováním hodnot v zlovém vektor (vz dále) 4

Nenformní kbcký B-splne 2. Nenformní kbcký B-splne - opakování hodnot v zlovém vektor Uzlový vektor U [,...,,,...,,..., 0, k k m a) Nenformta na koncích na začátk konc U se opakje k hodnot (křvka nterpolje koncové body) Př. 6 bodů a segmenty 0 m m2 pro...... k mk k,..., m, k stejných k stejných mk ] Různé [0,0,0,0,,2,,,,] k k b) Nenformta vntř opakjí se hodnoty mez k- a km+ obloky degenerjí - doble knot (opakjí se dvě hodnoty), - trpple knot ( hodnoty) nterpolje bod Opakjící se [0,,2,,4,4,5,6,7,8] ( obecně (k-) opakování nterpolje bod ) k k 42

Nenformní kbcký B-splne a) Nenformta na koncích Uzly [0,0,0,0,,2,,,,] Opakované hodnoty v zlovém vektor 6 bodů segmenty Opakování řídícího bod pro srovnání Trojnásobný koncový počáteční bod 0 bodů 7 segmentů 4

Nenformní kbcký B-splne b) Nenformta vntř Oblok degenerje na bod nespojtost [0,,2,,4,4,4,4,5,6,7,8] qadrple knot 7 bodů, k=4 => hodnot v zlovém vektor 2 hodnot 44

Modelování NURBS křvek a ploch Prncp aproxmace pomocí nenformních B-splne a NURBS (vz dále). Rozdělení nterval parametr na dílčí ntervaly zlové body (knots) 2. Rozdělení křvky na navazjící obloky (plochy na pláty) mez zlovým body. Konstrkce bázových fnkcí postpno nterpolací voltelný řád bázových fnkcí (typcky řád k=4, kbky) snížení výpočetní složtost (nízký řád polynomů) lokální vlv řídcího bod 45

Nenformní kbcký B-splne Nenformní B-splne křvka přes všech m bodů Dáno: Řídcí polygon P = p 0, p, p m, (m+ bodů) Uzlový vektor T = [t 0, t,..., t k, t k+,..., t m, t m+,..., t m+k ], t t + Řád aproxmace k. B-splne křvka r(t) řád k s řídcím polygonem P nad vektorem T r(t) m p N (t), m k, t t, t 0, k k m (příspěvky bodů dále než k/2 jso nlové) Defnováno 0/0 = 0 46

Vlastnost nenformní B-splne křvky r(t). Obecně neprochází žádným bodem 2. Křvka r(t) leží vntř konvexní obálky řídcího polygon P.. Křvka r(t) je v p-násobném zl (k-p-) krát spojtě dferencovatelná. 4. Je-l (k-) řídcích bodů kolneárních křvka r(t) se dotýká řídcího polygon. Je-l k řídcích bodů kolneárních křvka r(t) má s řídcím polygonem společno hran. 5. Jestlže k- zlových bodů splyne, na křvce r(t) vznkne zlom. Strany řídcího polygon jso pak tečnam v tomto bodě. 47

Vlastnost nenformní B-splne křvky r(t) 6. Pokd zlový vektor T obsahje poze k nlových zlů na začátk a k jednčkových zlů na konc Př.: [0,0,0,0,,,,] r(t) je Bézerova křvka řád k. 4 body (m=), k=4 7. Pro zlový vektor U typ U 0 m [ 0, pro m2,...,... k..., k, m k mk, k... k k m,... prochází křvka body p 0 a p n : r(t 0 ) = p 0, r(t m+ ) = p n, Dervace v počátečním a koncovém bodě křvky: r (t 0 ) = (k-).(p 0 -p )/(t k t 0 ), r (t m+ ) = (k-)(p m - p m- )/(t m+ -t m ) mk stejných stejných ] Př. [0,0,0,0,,2,,,,] k k vektor tečny měřítko 48

c) Nenformní kbcký raconální B-splne NURBS 49

Modelování NURBS křvek a ploch Dva styly reprezentace řídících bodů a vah (x,y,z,w) [Demdov] : a) Homogenní reprezentace.. OpenGL pozce bod se v OpenGL počítá jako (x/w, y/w, z/w). proto zadávat jako (x.w, y.w, z.w, w), aby po dělení w vyšlo (x,y,z,w), kde w 0, ) je váha bod b) Vážená Ekledovská reprezentace sořadnce jso chápany jako jž vydělené w. Proto složky (x,y,z) přímo reprezentjí poloh bod a čtvrtá složka váh w, tedy (x,y,z,w) 50

Modelování NURBS křvek a ploch NURBS křvka Dáno: Řídcí polygon P = [ p 0, p, p m ], Uzlový vektor T = [t 0, t... t k, t k+...t m, t m+,... t m+k ], t <= t + Řád aproxmace k. p = [w x, w y, w z, w ], řídící bod s váho w Poloha řídícího bod v Ekledovských soř. se získá vydělením váho w P = [x, y, z ] řídící bod v Ekledovských sořadncích Bod na nenformní B-splne křvce má homogenní sořadnce r(t) p m N 0, k (t) Z toho váha (4. složka) v lbovolném bodě křvky je m r(t) w N (t) w 0, k 5

Modelování NURBS křvek a ploch D poloha bod po vydělení w je tedy Q(t) m Nahrazením [ x, y, z ]. w. N ( t) 0, k m w N (t) w. N, R (t) m, k w Získáme rovnc NURBS m Q(t) p 0 p 0 R 0, k k (t) (t) N, k, k (t) Poznámky: NURBS křvka Q(t) vznkne nverzní homogenní transformací B-splne křvky r(t) s řídcím body v homogenních sořadncích Fnkce R,k (t) jso lomené raconální fnkce Homogenní sořadnce w řídcího bod vyjadřje jeho váh NURBS křvky jso nvarantní vůč afnní perspektvní transformac 52

Modelování NURBS křvek a ploch Kržnce jako NURBS křvka řád k= P 6 P 5 /2 /2 P 4 P 7 2/2 2/2 P 5 P 0 =P 6 P P 0 =P 8 P 4 /2 /2 P P 2 2/2 2/2 P P P 2 Kržnce zadaná 7 body w = {, /2, /2,, /2, /2, } váhy T= { 0,0,0,/4,/2,/2,/4,,,] zly Totéž jako T= { 0,0,0,, 2, 2,,4,4,4} Kržnce zadaná 9 body w = {, 2/2,, 2/2,, 2/2,, 2/2, } 2/2 = cos(45 ) T= { 0,0,0,/4,/4,/2,/2,/4,/4,,,} T= { 0,0,0,,, 2, 2,,,4,4,4} 5

Aproxmační metody modelování křvek Výhody NURBS Šroká třída modelovaných křvek/ploch splne křvky/plochy křvky/plochy s nespojto. dervací oblok křvky může být úsečka Rozsah parametr, v může být nespojtý Přesný pops kželoseček a válcových ploch Invarance vůč afnní perspektvní projekc Jednotná úsporná reprezentace většna systémů pro modelování požívá NURBS pro vntřní reprezentac křvek/ploch 54

Modelování NURBS křvek a ploch NURBS plocha NURBS plocha - tenzorový prodkt dvo křvek Dáno: Řády k a q pro parametry a v, Uzlové vektory T a T v pro parametr a v Matce (m x n) řídcích bodů p, j. Bod plochy: m S(,v) = R,k () R j,q (v) p,j n j 0 0 55

Operace nad NURBS křvkam a plocham. Vkládání zlových bodů:. Do zlového vektor se vloží nové zly 2. Hledá se nový řídcí polygon tak, aby se nezměnl tvar modelované křvky. Oslo-algortms, Boehm-algortms T = [0, 0, 0, 0, 0.5,,,, ] T = [0, 0, 0, 0, 0.25, 0.5,,,, ] 5 bodů, k=4 6 bodů, k=4 56

Operace nad NURBS křvkam a plocham 2. Změna řád křvky Výpočet řídcích bodů a zlových bodů křvky vyššího řád. P 6 P 7 2/2 2/2 P 5 P 0 =P 8 P 4 2/2 2/2 P P P 2 Kržnce řád Kržnce řád 4 T= { 0,0,0,/4,/4,/2,/2,/4,/4,,,] w = {, 2/2,, 2/2,, 2/2,, 2/2, } 2/2 = cos(45 ) 57

Operace nad NURBS křvkam a plocham. Sjednocení zlových vektorů T, T 2 : Jso dány vektory T, T 2 dvo křvek řád k. Algortms provede sjednocení T = T T 2 tak, že se žádný zel nebde opakovat více než k-krát. nespojtost původních křvek se přeneso do křvky s zlovým vektorem T Důsledek operací nad NURBS: pomocí operací - lze různé NURBS křvky vyjádřt jako křvky stejného řád se stejným počtem řídcích a zlových bodů stejná forma záps křvek křvky moho být požty pro modelování ploch 58

Modelování NURBS křvek a ploch Technky modelování NURBS ploch Tažení (sweepng, extrson). Modelování taženého žebra v rovně 2. Posn žebra o daný vektor v p 2,2 p,2 = p, + v v p,2 p, p 2, S(,v) = 4 0 j 0 R,k () R j, (v) p,j 59

Modelování NURBS křvek a ploch Modelování rotačních ploch. Modelování proflové křvky soparametrcká křvka pro v = konst. NURBS křvka v rovně (x,z) 2. Rotace proflové křvky kolem osy z o 60 o soparametrcká křvka pro = konst. p 0,0 p,0 p 2,4 p 2,5 p 2,6 p 2,7 S p 2, kržnce a její řídcí polygon 4 8 (, v) R () R (v) p 0 j 0,k j,2,j v p 2,2 p,0 p 4,0 p 2, p 2,0 = p 2,8 proflová křvka 60

Aproxmační metody modelování křvek Modelování přímkových ploch. Modelování krajních křvek C řád k, řídcí body P, zlový vektor T C 2 řád k 2, řídcí body P 2, zlový vektor T 2 2. Úprava C,C 2 na stejný řád k = max (k, k 2 ) k. Sjednocení zlových vektorů T = T T 2 T 4. Aplkace Oslo algortm na C,C 2 řád k s zlovým vektorem T P C,C 2 mají stejný počet řídcích bodů n + S(, v) p p,j - řídcí body C n 0 j R () R (v) 0,k j,,j C 2 p 2,j - řídcí body C 2 C 6

Aproxmační metody modelování křvek Modelování obalových ploch (sknnng) Zobecnění postp modelování přímkových ploch:. Modelování m žeber - NURBS křvek C křvek C řád k, řídcí body P, zlový vektor T 2. Úprava C na stejný řád k = max (k ), =, 2,...m. Sjednocení zlových vektorů T = T, =, 2,...m 4. Aplkace Oslo algortm na každo křvk C, řád k s zlovým vektorem T C mají stejný počet řídcích bodů n S(, v) m n j R (v) R (),q j, k -tý řádek matce řídcích bodů P = řídcí body křvky C j-tý slopec matce řídcích bodů P = řídcí body ve směr parametr v p,j 62

Reference [Demdov] http://www.bblo.org/e-notes/splnes/intro.htm, pdated 2 Feb 2004, stav dne 20.5.2006. [Alexandr] Lbomír Alexandr. Výka počítačové grafky cesto WWW. Dplomová práce. http://www.hyperkrychle.cz/crves/obsah.html [MPG] Žára, Beneš, Sochor, Felkel. Moderní počítačová grafka, 2. vydání, Compter Press, 2004, kap. 5. 6