NURBS REPREZENTACE KŘIVEK V MAPLE

Podobné dokumenty
Jana Dannhoferová Ústav informatiky, PEF MZLU

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

Křivky a plochy technické praxe

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

SROVNÁNÍ KVALITATIVNÍCH VLASTNOSTÍ INTERPOLAČNÍCH NURBS KŘIVEK

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

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

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

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

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

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

Rhino - základní příkazy

Počítačová grafika RHINOCEROS

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

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

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

Přehled. Motivace Úvod. Křivky a plochy počítačové grafiky. Závěr. Rozvoj počítačové grafiky Výpočetní geometrie

Základní vlastnosti křivek

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

Plochy zadané okrajovými křivkami

Základní vlastnosti ploch

Singularity rotačních obalových ploch

i=1 Přímka a úsečka. Body, které leží na přímce procházející body a a b můžeme zapsat pomocí parametrické rovnice

KMA/GPM Barycentrické souřadnice a

Rasterizace je proces při kterém se vektorově definovaná grafika konvertuje na. x 2 x 1

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

Použití splinů pro popis tvarové křivky kmene

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

GIS Geografické informační systémy

Ukázka možností interpolace dat v softwaru Matlab

Aproximace funkcí. x je systém m 1 jednoduchých, LN a dostatečně hladkých funkcí. x c m. g 1. g m. a 1. x a 2. x 2 a k. x k b 1. x b 2.

GIS Geografické informační systémy

Circular Harmonics. Tomáš Zámečník

Projekt IMPLEMENTACE ŠVP. pořadí početních operací, dělitelnost, společný dělitel a násobek, základní početní operace

Křivky a plochy. Pavel Strachota. FJFI ČVUT v Praze

TEORIE TVAROVÝCH PLOCH

Geometrie pro počítačovou grafiku - PGR020

Interaktivní modely pro Konstruktivní geometrii

Disperzní chyby B-spline varianty. Ing. Radek Kolman, Ph.D.

Pružnost a plasticita II CD03

GIS Geografické informační systémy

Rekonstrukce ploch: Polygonální a analytická reprezentace Vybrané metody aproximace ploch

Subdivision křivky a plochy

Státní závěrečná zkouška z oboru Matematika a její použití v přírodních vědách

3. ÚVOD DO ANALYTICKÉ GEOMETRIE 3.1. ANALYTICKÁ GEOMETRIE PŘÍMKY

Operační výzkum. Síťová analýza. Metoda CPM.

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

Text úlohy. Která barva nepatří do základních barev prostoru RGB? Vyberte jednu z nabízených možností: a. Černá b. Červená c. Modrá d.

Detekce kartografického zobrazení z množiny

Kombinatorická minimalizace

Funkce. Definiční obor a obor hodnot

autorovu srdci... Petr Hliněný, FI MU Brno 1 FI: MA010: Průnikové grafy

Polynomy a interpolace text neobsahuje přesné matematické definice, pouze jejich vysvětlení

Rekonstrukce křivek a ploch metodou postupné evoluce

PROSTORU MODELLING OF NURBS CURVES AND SURFACES IN THE PROJECTIVE SPACE

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.

Zpracování neurčitosti

Tematický plán Obor: Informační technologie. Vyučující: Ing. Joanna Paździorová

Pokroky matematiky, fyziky a astronomie

Matematika pro real-time grafiku

Úloha 1. Napište matici pro případ lineárního regresního spline vyjádřeného přes useknuté

PŘÍMKA A JEJÍ VYJÁDŘENÍ V ANALYTICKÉ GEOMETRII

25. KONFERENCE O GEOMETRII A POČÍTAČOVÉ GRAFICE

Rovinná úloha v MKP. (mohou být i jejich derivace!): rovinná napjatost a r. deformace (stěny,... ): u, v. prostorové úlohy: u, v, w

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í

Vyplňování souvislé oblasti

Zobrazování 2D Nadpis křivek 2 Nadpis 3

VE 2D A 3D. Radek Výrut. Abstrakt Tento článek obsahuje postupy pro výpočet Minkowského sumy dvou množin v rovině a pro výpočet Minkowského sumy

Drsná matematika III 1. přednáška Funkce více proměnných: křivky, směrové derivace, diferenciál

Metodické listy pro kombinované studium předmětu. B_PPG Principy počítačové grafiky

1.1 Příklad z ekonomického prostředí 1

Grafické programy pro tvorbu 3D modelů

Maturitní otázky z předmětu MATEMATIKA

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

1 Polynomiální interpolace

Limita a spojitost funkce a zobrazení jedné reálné proměnné

Mgr. Ladislav Zemánek Maturitní okruhy Matematika Obor reálných čísel

CZ 1.07/1.1.32/

7 Editace bodů. Editace bodů. NURBS křivky

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

Usuzování za neurčitosti

Interpolace Lagrangeovy polynomy. 29. října 2012

Zadání geometrie načtením souboru DXF

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

SVD rozklad a pseudoinverse

B) výchovné a vzdělávací strategie jsou totožné se strategiemi vyučovacího předmětu Matematika.

Gymnázium Česká a Olympijských nadějí, České Budějovice, Česká 64, 37021

modelovani_ploch.pdf - návod k vypracování 2.sam. práce a vzor vyplnění formuláře ( přineste na 5.cvičení)

2. LIMITA A SPOJITOST FUNKCE

Interpolace pomocí splajnu

Katedra geotechniky a podzemního stavitelství

7 Transformace 2D. 7.1 Transformace objektů obecně. Studijní cíl. Doba nutná k nastudování. Průvodce studiem

4. Digitální model terénu.

MATURITNÍ TÉMATA Z MATEMATIKY

Generování sítě konečných prvků

V tomto článku popíšeme zajímavou úlohu (inspirovanou reálnou situací),

Náhodný vektor a jeho charakteristiky

B-spline a racionální B-spline křivky

Algoritmus pro hledání nejkratší cesty orientovaným grafem

Transkript:

25. KONFERENCE O GEOMETRII A POČÍTAČOVÉ GRAFICE Karolína Kundrátová NURBS REPREZENTACE KŘIVEK V MAPLE Abstrakt Parametrizace křivek jako NURBS (tj. neuniformní racionální B-spliny) patří k moderním postupům geometrického modelování. V příspěvku je uveden obecný výpočet takovéto reprezentace křivek pomocí matematického programu Maple. NURBS křivka, Maple. Klíčová slova 1 Úvod Jedním ze základních úkolů, které jsou řešeny v geometrickém modelování, je otázka, jak množinou bodů v rovině či prostoru proložit křivku vhodného tvaru. Víme, že takové křivky můžeme rozdělit do dvou skupin: na ty, které procházejí danými body (interpolační křivky), a ty, které sledují tvar lomené čáry spojující řídicí body, tzv. řídicí polygon (aproximační křivky). Existuje mnoho metod, jak interpolaci či aproximaci provést. Článek se zabývá aproximací pomocí NURBS. NURBS je velmi používaným termínem moderní počítačové geometrie. Uveďme ve stručnosti, co zkratka znamená. NURBS jsou neuniformní racionální B-spliny. B-spliny jsou segmentované křivky složené z oblouků známých Bézierových křivek a splňující podmínky C 2 spojitosti. Racionální B-spliny se od polynomiálních křivek liší v tom, že každému řídicímu bodu je přiřazen parametr vypovídající o jeho vlivu na tvar křivky. Parametru říkáme váha a nabývá nezáporných reálných hodnot. Čím větší je váha jednoho bodu oproti váhám ostatních bodů, tím větší vliv má bod na tvar křivky (tím více je křivka přitahována k tomuto bodu). Racionální B-spliny jsou parametrizovány pomocí racionálních funkcí. O neuniformních racionálních B-splinech hovoříme, když vzdálenosti mezi body, ve kterých dojde k napojení segmentů (těmto bodům říkáme uzly; posloupnosti, kterou tvoří, pak uzlový vektor), nejsou stejné. Vzdáleností uzlů zde

Karolína Kundrátová myslíme rozdíl hodnot parametru u NURBS křivky C(u) v uzlech. Když jsou vzdálenosti uzlů stejné, jedná se o uniformní racionální B-spliny. V článku je prezentován výpočet NURBS křivky podle její definice pomocí matematického programu Maple. Tento výpočet byl sestaven pro potřeby dalšího zkoumání NURBS křivek a byl využit při výuce na FSI ČVUT v Praze v rámci volitelného semináře Geometrie pro CAD (viz http://marian.fsik.cvut.cz/~linkeova pod odkazem Geometrie pro CAD. 2 NURBS křivky V dalším textu se budu odvolávat na definici uzlů a uzlového vektoru (1), definici B-spline bázových funkcí (2) a NURBS křivky (3), které jsou zařazeny v části 2 článku [1]. Zájemcům o problematiku doporučuji knihu [2] nebo didakticky vhodně zpracované internetové přednášky [3]. Přechodem mezi NURBS reprezentací a tradičními parametrizacemi křivek (Fergusonova kubika, Bézierova křivka, Coonsova kubika) se zabývá článek [1]. 2.1 Výpočet NURBS křivek pomocí Maple K tomu, abychom mohli zkoumat vlastnosti NURBS křivek a s křivkami dále pracovat, jsme sestavili výpočet v matematickém programu Maple. Použili jsme verzi Maple 8.00, viz [4]. Studenti výše zmíněného semináře měli za úkol ručně spočítat NURBS křivky druhého a třetího stupně určené čtyřmi řídicími body. Nejtěžší pro ně bylo vyrovnat se s tím, že bázové funkce i samotné křivky jsou jinak definované na různých intervalech uzlového vektoru. V Maplu si s tímto faktem poradíme použitím příkazu piecewise (viz níže). Následující výpočet je sestaven pro rovinnou NURBS křivku C stupně p určenou n+1 řídicími body P [i], kde i = 0,..., n. Každému bodu P [i] je přirazena váha w[i]. Uzlový vektor je označen U a ve výpočtu je uniformní. Parametry, které můžeme měnit, jsou: počet řídicích bodů n + 1, poloha a váhy řídicích bodů P [i], stupeň křivky p a uzlový vektor U. Vliv změny těchto tvarovacích parametrů na tvar křivky si ukážeme níže v části 2.2. Pro výpočet prostorové NURBS křivky můžeme použít stejný program, provedeme-li drobnou úpravu, a sice přidáme-li třetí souřadnice řídicích bodů a přeindexujeme pole s váhami bodů.

NURBS REPREZENTACE KŘIVEK V MAPLE Index koncového řídicího bodu je označen n; počet řídicích bodů je n+1. n:=4: Řídicí body křivky jsou P[i]; i={0, 1,..., n}, přičemž první dvě složky vektoru jsou souřadnice (pracujeme v rovině), třetí složka je váha. P[0]:=([0,0,1]): P[1]:=([1,3,1]): P[2]:=([3,1,12]): P[3]:=([4,5,1]): P[4]:=([6,-1,1]): Váhy bodů přepíšeme do pole w, kde w[i] je váha bodu P[i]. for i from 0 to n do w[i]:=p[i][3] p je stupeň křivky. p:=2: nops U je počet složek uzlového vektoru. nops_u:=n+p+2: Výpočet uzlů tak, aby uzlový vektor byl uniformní stejně dlouhé intervaly a křivka interpolovala krajní řídicí body z teorie NURBSů víme, že uzlový vektor musí mít prvních p+1 složek rovných 0 a posledních p+1 složek rovných 1. for i from 1 to p+1 do U[i]:=0 od: for i from p+2 to n+1 do U[i]:=U[i-1]+1/(n-p+1) od: for i from n+2 to nops_u do U[i]:=1 Přeindexování uzlů tak, aby první uzel měl index 0 - nové pole uzlů nazvané uu. for i from 1 to nops_u do uu[i-1]:=u[i] Nulté bázové funkce N[i,0] dle definice 2; je třeba definovat segmentovaně (jiný předpis pro různé intervaly). for i from 0 to nops_u-2 do if (uu[i+1]-uu[i]<0) then if i<n then N[i,0]:=simplify(piecewise(u=uu[i] and u<uu[i+1],1,0)): else N[i,0]:=simplify(piecewise(u=uu[i] and u<=uu[i+1],1,0)): fi: else N[i,0]:=0 fi

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 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))) 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): 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

Karolína Kundrátová Obr. 2: Křivky s w i = 1 a uniformním U. Změna stupně p (odleva): p = 15, p = 5, p = 2. Čím nižší stupeň křivky, tím věrněji křivka sleduje řídicí polygon. Poděkování Článek vznikl za podpory projektu CTU 0513112: NURBS reprezentace křivek a ploch v MAPLE. Literatura [1] I. Linkeová: Speciální případy NURBS reprezentace, Sborník konference CGC 2005, Janov, 2005. [2] L. Piegl, W. Tiller: The NURBS Book, Springer, Londýn, 1995. [3] Ch.-K. Shene: www.cs.mtu.edu/ shene/courses/cs3621/notes [4] Maple 8.00 help programu Maple.