12.07.2015 Views

Numerické a geometrické modelování - Západočeská univerzita v ...

Numerické a geometrické modelování - Západočeská univerzita v ...

Numerické a geometrické modelování - Západočeská univerzita v ...

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Západočeská</strong> <strong>univerzita</strong> v Plzni, Fakulta aplikovaných vědKatedra matematiky<strong>Numerické</strong>a <strong>geometrické</strong> <strong>modelování</strong>Pomocný učební textF. JežekPlzeň, září 2005


Obsah1 Úvod 71.1 Pojem modelu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.2 Přehled aplikací <strong>geometrické</strong>ho <strong>modelování</strong> . . . . . . . . . . . . . . . . . . . . . 71.2.1 CA technologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.2.2 Simultánní inženýrství . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.2.3 Technické aplikace <strong>geometrické</strong>ho <strong>modelování</strong> . . . . . . . . . . . . . . . 81.2.4 Aplikace netechnické . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.3 Kontrolní otázky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Geometrické transformace 102.1 Homogenní souřadnice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.2 Geometrické transformace v rovině . . . . . . . . . . . . . . . . . . . . . . . . . 112.2.1 Posunutí neboli translace . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.2.2 Otočení neboli rotace okolo bodu . . . . . . . . . . . . . . . . . . . . . . 112.2.3 Změna měřítka neboli dilatace . . . . . . . . . . . . . . . . . . . . . . . . 122.2.4 Osová souměrnost neboli symetrie . . . . . . . . . . . . . . . . . . . . . . 122.2.5 Skládání transformací . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.3 Geometrické transformace v prostoru . . . . . . . . . . . . . . . . . . . . . . . . 122.3.1 Posunutí neboli translace . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.3.2 Otáčení neboli rotace okolo osy . . . . . . . . . . . . . . . . . . . . . . . 132.3.3 Souměrnost neboli symetrie podle roviny . . . . . . . . . . . . . . . . . . 132.3.4 Změna měřítka neboli dilatace . . . . . . . . . . . . . . . . . . . . . . . . 142.4 Samodružné body a samodružné směry transformací . . . . . . . . . . . . . . . . 142.5 Struktura grupy afinních transformací . . . . . . . . . . . . . . . . . . . . . . . . 152.6 Cvičení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.7 Kontrolní otázky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 Popis křivek a ploch pro <strong>geometrické</strong> <strong>modelování</strong> 183.1 Rovnice křivek a ploch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.2 Parametrizace křivky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.3 Parametrické vyjádření kuželoseček . . . . . . . . . . . . . . . . . . . . . . . . . 193.3.1 Kružnice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.3.2 Elipsa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.3.3 Parabola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.3.4 Hyperbola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212


3.3.5 Parametrizace pomocí racionálních lomených funkcí . . . . . . . . . . . . 223.4 Tečný vektor, tečna, tečná rovina . . . . . . . . . . . . . . . . . . . . . . . . . . 223.5 Oblouk křivky a Frenetovy vzorce . . . . . . . . . . . . . . . . . . . . . . . . . . 233.6 Cvičení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.7 Kontrolní otázky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 Spline 284.1 Interpolační křivky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.2 Fergusonova kubika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.3 Kubické spline křivky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.4 Spline stupně s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334.5 Cvičení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344.6 Kontrolní otázky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 Bézierovy křivky 355.1 Bézierova kubika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365.2 Vlastnosti Bernsteinových polynomů . . . . . . . . . . . . . . . . . . . . . . . . 365.3 Vlastnosti Bézierových křivek . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375.4 Cvičení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395.5 Kontrolní otázky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396 B–spline 406.1 Coonsův B–spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406.1.1 Vlastnosti Coonsovy kubiky . . . . . . . . . . . . . . . . . . . . . . . . . 406.1.2 Napojování Coonsových kubik . . . . . . . . . . . . . . . . . . . . . . . . 426.1.3 Řídicí polygon Coonsova B-splinu . . . . . . . . . . . . . . . . . . . . . . 426.2 B–spline baze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436.3 B-spline křivky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456.4 de Boorův algoritmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456.5 Zvýšení počtu vrcholů řídicího polygonu . . . . . . . . . . . . . . . . . . . . . . 466.6 Cvičení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466.7 Kontrolní otázky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477 NURBS 487.1 Princip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487.2 Racionální Bézierovy křivky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487.2.1 Vlastnosti racionálních Bézierových křivek . . . . . . . . . . . . . . . . . 497.2.2 Geometrický význam váhy bodu . . . . . . . . . . . . . . . . . . . . . . . 497.2.3 Kuželosečky jako racionální Bézierovy křivky . . . . . . . . . . . . . . . . 497.2.4 NURBS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507.3 Cvičení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517.4 Kontrolní otázky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513


8 Plochy tenzorového součinu určené sítí bodů 528.1 Bézierovy plochy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528.1.1 Přímý algoritmus de Casteljau . . . . . . . . . . . . . . . . . . . . . . . . 538.1.2 Aplikace algoritmu de Casteljau po křivkách . . . . . . . . . . . . . . . . 538.1.3 Vlastnosti Bézierových ploch . . . . . . . . . . . . . . . . . . . . . . . . . 538.1.4 Napojování . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558.1.5 Popis bikubických spline ploch . . . . . . . . . . . . . . . . . . . . . . . . 558.2 B-spline plochy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568.2.1 Coonsova B-spline plocha . . . . . . . . . . . . . . . . . . . . . . . . . . 568.2.2 Obecná B-spline plocha . . . . . . . . . . . . . . . . . . . . . . . . . . . 578.3 Racionální specializace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588.4 Cvičení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598.5 Kontrolní otázky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609 Coonsovy plochy – plochy určené okrajem 619.1 Přechodová plocha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619.2 Bilineární Coonsův plát . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619.3 Bikubický Coonsův plát . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629.4 Dvanáctivektorový a šestnáctivektorový plát . . . . . . . . . . . . . . . . . . . . 649.5 Obecný Coonsův plát . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659.6 Cvičení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659.7 Kontrolní otázky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6610 Shrnutí poznatků o křivkách a plochách 6710.1 Shrnutí poznatků o křivkách . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6710.1.1 Fergusonova kubika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6710.1.2 Interpolační spline křivky . . . . . . . . . . . . . . . . . . . . . . . . . . 6810.1.3 Bézierovy křivky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6910.1.4 B-spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6910.1.5 Geometrická spojitost . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7010.2 Shrnutí poznatků o plochách . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7010.2.1 Spline plocha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7010.2.2 Přechodová plocha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7110.2.3 Bilineární Coonsův plát . . . . . . . . . . . . . . . . . . . . . . . . . . . 7110.2.4 Bikubický Coonsův plát . . . . . . . . . . . . . . . . . . . . . . . . . . . 7110.2.5 Dvanáctivektorový plát . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7210.2.6 Šestnáctivektorový plát . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7210.2.7 Obecný Coonsův plát . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7310.2.8 Bézierovy plochy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7310.2.9 Coonsův B-spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7310.2.10 Obecná B-spline plocha . . . . . . . . . . . . . . . . . . . . . . . . . . . 7410.2.11 NURBS plocha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7410.2.12 Trojúhelníkové pláty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754


11 Modelování těles 7611.1 Jemný úvod do topologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7611.1.1 Eulerova charakteristika těles . . . . . . . . . . . . . . . . . . . . . . . . 7611.2 Typy modelů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7811.3 Volná parametrizace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7911.4 Cvičení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8111.5 Kontrolní otázky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8212 CAD/CAM/PLM 8312.1 Pojem CAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8312.2 Geometrické <strong>modelování</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8312.2.1 2D a 3D systém . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8412.2.2 Uchopování . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8412.2.3 Asociativita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8512.2.4 Parametrizace modelu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8512.2.5 Variační geometrie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8612.2.6 Tvarově složité objekty . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8612.2.7 Množinové operace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8712.2.8 Hybridní modelář . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8712.2.9 Specializované moduly . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8712.2.10 Výměnné formáty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8812.3 Rozdělení CAD systémů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8812.4 Výběr CAD systému . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8912.5 Závěr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8912.6 Kontrolní otázky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 905


PředmluvaTento text vznikl pro potřeby studentů, kteří navštěvují předmět „<strong>Numerické</strong> a <strong>geometrické</strong><strong>modelování</strong> (KMA/NGM).Text by měli využít zejména studenti konstrukčních a technologických studijních oborů. Nageometrických základech totiž stojí většina metod používaných v CAD systémech a také v CAMsystémech zaměřených na obrábění tvarově složitých objektů. Pojmy jako iterace, diskretizace,spline, metoda nejmenších čtverců, NURBS, parametric modelling apod. by v tomto textu mělybýt vysvětleny tak, aby uživatel CAD/CAM systému nebyl nucen ke zbytečným intuitivnímimprovizacím.Jsem si vědom toho, že v textu je dozajista velké množství nedopatření a chyb. Budu protovelmi vděčný za každé upozornění – nejlépe pomocí elektronické pošty.V Rokycanech 31. října 2005F. Ježek (JEZEK@KMA.ZCU.CZ)6


Kapitola 1Úvod1.1 Pojem modeluV tomto odstavci vysvětlíme pojem „<strong>modelování</strong>. Z hlediska této publikace půjde zejménao <strong>modelování</strong> <strong>geometrické</strong>.Model je uměle vytvořený objekt ke studiu vlastností existujícího nebo navrhovaného objektu.Model fyzikálně–matematický je objekt, který je zpravidla popsán rovnicemi, tj. pomocímatematického aparátu.Model geometrický abstrahuje od materiálových charakteristik a popisuje především tvar,tj. geometrii, s tím, že často odděluje informace topologické a metrické.Model výrobku zahrnuje <strong>geometrické</strong> i technické informace (použití tzv. „features).1.2 Přehled aplikací <strong>geometrické</strong>ho <strong>modelování</strong>1.2.1 CA technologieCA koncepcí, tj. Computer Aided koncepcí, rozumíme uplatnění výpočetní techniky v jistéoblasti lidské (často technické) činnosti člověka. Jedná se o komplexní podporu činnosti člověkaa v překladu se proto mluví o počítačové podpoře. V tab. 1.1 uvádíme přehled používanýchzkratek s jejich vysvětlením.Základní myšlenkou je opakované využití jednou zadaných informací, vstupních dat projejich následné zpracování v ostatních fázích výrobního procesu. Předpokladem realizace tohotozáměru je vytvoření centrálního informačního systému a hierarchické struktury řízení.Vztahy CA komponent vysvětluje obr. 1.1.1.2.2 Simultánní inženýrstvíKlasické inženýrství je sekvenční, tj. jednotlivé fáze přípravy výroby a výroby samotné na sebenavazují v čase.7


Označení VýznamObsahCAA Computer Aided Assembly montáž podporovaná počítačemCAD Computer Aided Design navrhování podporované počítačemCADD Computer Aided Design and návrh a kreslení podporovaný počítačemDraftingCAE Computer Aided Engineerinčeminženýrská činnost podporovaná počíta-(viz další text)CAM Computer Aided Manufacturingvýroba podporovaná počítačem (automatizovanývýrobní systém)CAP Computer Aided Procces technologická příprava výroby podporovanánebo PlanningpočítačemCAPPCAQ Computer Aided Quality kontrola kvality podporovaná počítačemCheckCAR Computer Aided Robotic totéž jako CAACAT Computer Aided Testing testování pomocí počítačeCIM Computer Integrated Manufacturingvýroba integr. pomocí počítačeTabulka 1.1: CA – koncepceSimultánní inženýrství je založeno na překrytí jednotlivých činností. Základem k tomu jepráce všech zúčastněných profesí nad jednotným modelem. Dominantní roli hraje model geometrický,ovšem uživatel komunikuje se systémem v „řeči modelu výrobku.1.2.3 Technické aplikace <strong>geometrické</strong>ho <strong>modelování</strong>V oblasti technických věd má <strong>geometrické</strong> <strong>modelování</strong> podstatný význam např. pro tyto oblasti:• letecký, loďařský a automobilní průmysl,• návrh a výroba lopatek a jiných tvarově složitých součástí,• geografické informační systémy (GIS) – digitální model terénu,• návrh a výroba tištěných spojů,• příprava vstupu pro technické výpočty (FEM-MKP),• potrubní systémy,• průmyslový design.1.2.4 Aplikace netechnickéGeometrické <strong>modelování</strong> se však uplatňuje i v oblastech netechnických. Jedná se např. o tytoaplikace:8


Konstrukce Příprava výroby VýrobaCAECADCAPPCAMCARCAQCIMObrázek 1.1: Vztah CA systémů• rekonstrukce z rentgenových snímků,• návrh předmětů denní spotřeby (<strong>modelování</strong> tvaru, textury),• reklama, zejména televizní,• trikový film a počítačové výtvarné umění.1.3 Kontrolní otázky1.1 Jeden z trendů v technické přípravě výroby si klade za cíl „paperless design nebo „drawinglessdocumentation. Pokuste se vysvětlit tento pojem (termín není uveden v textu).1.2 Vysvětlete rozdíl mezi klasickým a simultánním inženýrstvím!9


Kapitola 2Geometrické transformaceRozlišme dva způsoby, jakým jsou <strong>geometrické</strong> transformace používány:1. Je zvolen souřadnicový systém S. Transformaci jsou podrobeny body <strong>geometrické</strong>ho objektu,který tím mění polohu vzhledem k systému S popř. i svůj tvar. Jako příklad lzeuvést posunutí a otočení, ale i promítání objektu.2. Transformaci je podroben souřadnicový systém S. Transformace je zvolena tak, aby vybranýgeometrický objekt získal vzhledem k novému souřadnicovému systému S ′ polohuvýhodnou pro matematické vyjádření operací s objektem. Přitom se jeho poloha vzhledemk systému S nemění.V tomto textu budeme popisovat transformace objektů.2.1 Homogenní souřadniceUspořádanou trojici čísel (x, y, w) (w ≠ 0) nazveme pravoúhlé homogenní souřadnice boduP [x k , y k ] v rovině, platí-li:x k = x w , y k = y w ,kde čísla x k , y k jsou kartézské souřadnice bodu P . Body, pro které je w = 0, odpovídají vektorůmv rovině. Tyto body nelze určit jejich kartézskými souřadnicemi a nazýváme je nevlastní body.Z definice je patrné, jak lze převádět homogenní souřadnice bodu na jeho kartézské souřadnicea naopak. Aby převod souřadnic byl triviální, volíme často za homogenní souřadnice bodutrojici čísel ( x w , y w , 1).Příklad 2.1 Bod A má v daném souřadnicovém systému kartézské souřadnice [3,2]. Za jehohomogenní souřadnice lze volit trojici (3w, 2w, w), kde w ≠ 0. Např. pro w = 1 jsou to souřadnice(3,2,1). Změnou x-ové, popř. y-ové souřadnice se bod A posouvá ve směru osy x, popř. y.Změnou třetí souřadnice bodu A dostáváme body přímky OA. Body B=(3;2;0,5) a C=(3,2,2)mají kartézské souřadnice B[6, 4] a C[1, 5; 1]. Homogenní souřadnice vektoru OA ⃗ jsou např.(3,2,0) nebo (-9,-6,0).Obdobně lze zavést pravoúhlé homogenní souřadnice bodu P v prostoru jako uspořádanoučtveřici čísel (x, y, z, w). Kartézské souřadnice x k , y k , z k bodu P lze z jeho homogenníchsouřadnic určit pomocí vztahů: x k = x w , y k = y w , z k = z w .10


2.2 Geometrické transformace v roviněZabývejme se nejprve transformacemi v rovině. Bod o souřadnicích [x k , y k ], popř. (x, y, w),budeme transformovat do bodu [x ′ k , y′ k ], popř. (x′ , y ′ , w ′ ). Stejné označení použijeme pro transformacisouřadnic vektoru.2.2.1 Posunutí neboli translacePosunutí (translace) je určeno vektorem posunutí p = (x t , x t ). Souřadnice bodu [x k , y k ] setransformují rovnicemix ′ k = x k + x t , y ′ k = y + y t ,zatímco souřadnice vektoru se posunutím nemění.Použijeme-li homogenní souřadnice, lze transformaci pro body i vektory, tj. pro body vlastnía nevlastní, zapsat jednotně v maticovém tvaru:⎛(x ′ , y ′ , w ′ ) = (x, y, w) ⎝2.2.2 Otočení neboli rotace okolo bodu1 0 00 1 0X t Y t 1V dalším textu budeme vynechávat u kartézských souřadnic bodu index k.Otáčení (rotace) kolem počátku [0,0] je určeno orientovaným úhlem α:x ′ = x cos α − y sin α, y ′ = x sin α + y cos α.⎞⎠Obrázek 2.1:Transformační rovnice přepíšeme do maticového tvaru:⎛⎞cos α sin α 0(x ′ , z ′ , w ′ ) = (x, y, w) ⎝ − sin α cos α 0 ⎠ .0 0 1Koeficienty odvodíme z podmínky, že body [0,0], [1,0] a [0,1] se otočí do bodů [0,0], [cos α, sin α],[− sin α, cos α] – obr. 2.1.11


2.2.3 Změna měřítka neboli dilataceZměna měřítka na souřadnicových osách je určena nenulovými násobky původních jednotek:x ′ = s x x, y ′ = s y y.Je-li s x = s y = s dostaneme stejnolehlost se středem v počátku (0,0) a koeficientem s. Maticovýzápis transformačních rovnic si čtenář snadno odvodí.2.2.4 Osová souměrnost neboli symetrieOsová souměrnost je určena osou souměrnosti. Uvedeme transformační rovnice pro případ, kdyosou souměrnosti je některá souřadnicová osa. Platíx ′ = ix,y ′ = jy,kdei = −1, j = 1 pro souměrnost podle osy y;i = 1, j = −1 pro souměrnost podle osy x.2.2.5 Skládání transformacíGeometrický objekt je zpravidla podroben posloupnosti uvedených elementárních transformací.Matice složené transformace je součinem matic elementárních transformací a tedy při jejichskládání záleží na pořadí transformací.Příklad 2.2 Najdeme rovnici rovinné transformace pro otáčení kolem bodu A[x A , y A , 1] o úhelα.Řešení: Hledanou transformaci složíme ze tří elementárních transformací. Posunutím o vektora = −(x A , y A ) se bod A stane počátkem. Po otočení bodů kolem počátku provedeme posunutío vektor −a. Posloupnost transformací zapíšeme v maticovém tvaru:⎛(x ′ , y ′ , 1) = (x, y, 1) · ⎝⎛· ⎝1 0 00 1 0−x A −y A 11 0 00 1 0x A y A 1⎞⎛⎠ · ⎝cos α sin α 0− sin α cos α 00 0 12.3 Geometrické transformace v prostoruUvedeme přehled elementárních transformací v prostoru.Transformační rovnice zapíšeme v maticovém tvaru a bod P , popř. vektor p, vyjádřímehomogenními souřadnicemi (x, y, z, w).12⎞⎠ .⎞⎠ ·□


2.3.1 Posunutí neboli translacePosunutí (translace) je určeno vektorem posunutí (x t , y t , z t ):⎛(x ′ , y ′ , z ′ , w ′ ) = (x, y, z, w) ⎜⎝2.3.2 Otáčení neboli rotace okolo osy1 0 0 00 1 0 00 0 1 0x t y t z t 1Otáčení (rotace) je určeno osou otáčení a orientovaným úhlem otáčení. Uvedeme matici R x prootáčení kolem souřadnicové osy x o úhel α, matici R y pro otáčení kolem osy y o úhel β a maticiR z pro otáčení kolem osy z o úhel γ.R x =R y =R z =⎛⎜⎝⎛⎜⎝⎛⎜⎝1 0 0 00 cos α sin α 00 − sin α cos α 00 0 0 1cos β 0 − sin β 00 1 0 0sin β 0 cos β 00 0 0 1cos γ sin γ 0 0− sin γ cos γ 0 00 0 1 00 0 0 1⎞⎟⎠ ,⎞⎟⎠ ,⎞⎟⎠ .2.3.3 Souměrnost neboli symetrie podle rovinySouměrnost podle roviny je určena rovinou souměrnosti. Uvedeme rovnice pro transformacibodu souměrného podle jednotlivých souřadnicových rovin:⎛⎞i 0 0 0(x ′ , y ′ , z ′ , w ′ ) = (x, y, z, w) ⎜ 0 j 0 0⎟⎝ 0 0 k 0 ⎠ ,0 0 0 1kdei = -1, j = 1, k = 1 pro souměrnost podle roviny yz,i = 1, j = -1, k = 1 pro souměrnost podle roviny xz,i = 1, j = 1, k = -1 pro souměrnost podle roviny xy.⎞⎟⎠ .13


2.3.4 Změna měřítka neboli dilataceZměna měřítka na souřadnicových osách je určena nenulovými násobky s x , s y , s z původníchjednotek:⎛⎞s x 0 0 0(x ′ , y ′ , z ′ , w ′ ) = (x, y, z, w) ⎜ 0 s y 0 0⎟⎝ 0 0 s z 0 ⎠ .0 0 0 1Změna měřítka se v počítačové geometrii používá např. pro normalizaci souřadnic objektů.Souřadnice se transformují tak, aby byly v intervalu 〈0, 1〉. Objekt se transformací umístí dojednotkové krychle.2.4 Samodružné body a samodružné směry transformacíUvažujme obecnou projektivní transformaci⎛(x ′ , y ′ , z ′ , w ′ ) = (x, y, z, w) ⎜⎝⎞a 11 a 12 a 13 a 14a 21 a 22 a 23 a 14a 31 a 32 a 33 a 34a 41 a 42 a 43 a 44Stručně píšeme X ′ = X.A a předpokládejme, že matice A je regulární.Pokud máme určit samodružné body daného zobrazení, pak vlastně hledáme reálná číslak ≠ 0 a nenulové vektory X tak, aby k X = X.A. Což můžeme však psát jakoX(A − k I) = o T .Jedná se o homogenní soustavu lineárních algebraických rovnic a hledáme její netriviálnířešení. Aby takové řešení existovalo, musí být splněna podmínkadet(A − k I) = 0.Můžeme tedy konstatovat, že určení samodružných bodů projektivního zobrazení vede navýpočet vlastních čísel matice transformace a na určení vlastních vektorů.Příklad 2.3 Určete samodružné body a směry transformace v E 2 dané v kartézských souřadnicíchvztahyx ′ = x + y, y ′ = y.Řešení: Doporučujeme, abyste si načrtli obrázek, který vysvětlí, jak daná transformace funguje.Sestavíme maticové vyjádření transformace v homogenních souřadnicích⎛1 0⎞0(x ′ , y ′ , w ′ ) = (x, y, w) ⎝ 1 1 0 ⎠ .0 0 1⎟⎠ .14


Snadno zjistíme, že daná matice má vlastní číslo 1 (trojnásobné). Určíme vlastní vektory, tj.řešíme soustavu⎛1 0⎞0(x, y, w) = (x, y, w) ⎝ 1 1 0 ⎠ .0 0 1Řešením jsou všechny body tvary (x,0,w). Zjistili jsme tedy, že daná transformace má nekonečněmnoho vlastních samodružných bodu, jsou to všechny body osy x. Pro w = 0 dostanemenevlastní samodružné body, tj. samodružné směry. V našem případě je samodružný směr jediný,a to směr osy x.□2.5 Struktura grupy afinních transformacíV tomto odstavci uvedeme přehled nejdůležitějších afinních transformací, které tvoří grupu.Grupou rozumíme algebraickou strukturu, která je uzavřená vzhledem k operaci skládání transformací.Příkladem grupy transformací jsou např. translace. Je totiž zřejmé, že složením dvoutranslací vznikne opět translace (nebo identita). Homotetii definujeme jako transformaci, prokterou je každý směr samodružný.Na obr. 2.2 je znázorněn vztah jednotlivých podgrup grupy afinních transformací.Grupa afinit❄Grupa podobností✑✑✑✰◗ ◗◗Grupa homotetií Grupa shodností❄✘✾ ✘ ✘ ✘✘ ✘✘Grupa translací a středových souměrností ✠Grupa translací❄IdentitaObrázek 2.2: Struktura grupy afinních transformacíV tab. 2.1 je uveden přehled vlastností matice A a pro uvedené podgrupy grupy afinníchtransformací. Značíme⎛⎞a 11 a 12 a 13A a = ⎝ a 21 a 22 a 23⎠a 31 a 32 a 33a předpokládáme, že a 14 = a 24 = a 34 = 0, a 44 = 1.15


Transformace Vlastnosti matice PoznámkaIdentita A a = I, a 4i = 0, i = 1, . . . , 3TranslaceA a = I, pro alespoň jeden index všechny směry samodružnéi ∈ {1, 2, 3} je a 4i ≠ 0Středová souměrnost A a = −I všechny směry samodružnéHomotetie A a = k I, k ≠ 0 všechny směry samodružnéShodnost A T a .A a = I zachovává vzdálenostPodobnost A T a .A a = k 2 I k je koeficient změny délekAfinita det(A a ) ≠ 0 zachovává dělící poměrTabulka 2.1: Charakteristické vlastnosti matice pro podgrupy afinních transformacíPříklad 2.4 Ukažte, že transformaceje shodností.X ′ =√22 (X − Y ) + 1, y′ =√22 (X + Y ) + 2, Z′ = Z + 3Řešení: Sestavíme matici A a . Jde nepochybně o afinní transformaci: detA a = 1, tj. je nenulový,a a 14 = a 24 = a 34 = 0. Určíme součin A T a A a . Pokud tak dostaneme jednotkovou matici, jedokázáno, že daná transformace je shodností. Daná transformace vzniká složením rotace okoloosy z o úhel π a posunutí o vektor (1,2,3).4□Příklad 2.5 Ukažte, že transformace z příkladu 2.3 není shodností ani podobností.Řešení: Sestavíme matici A a . Jde nepochybně o afinní transformaci, detA a = 1 a a 14 = a 24 =a 34 = 0. Určíme součin A T a A a . Výsledná matice má tvar( ) 2 1,1 1tj. nejedná se o shodnost ani podobnost. V tomto případě jde o tzv. plochojevné zobrazení(plošný obsah geometrických útvarů se tímto zobrazením nemění), jejich charakteristikou je|detA a | = 1.□2.6 Cvičení2.1 Sestavte matici <strong>geometrické</strong> transformace v E 2 , která vznikne složením (v tomto pořadí)rotace okolo bodu S[1, 2] o úhel 45 o a dilatace, v níž se⎡mění měřítko ⎛ na ose x na poloviční.√2⎢ ⎜, √ ⎞⎤2, 04 2⎣T = ⎝ − √ 2, √2, 0 ⎟⎥4 2⎠⎦1+ √ 2, 2 − √ 32 4 2 2, 116


2.2 Určete obrazy bodů S[1, 2] a O[0, 0] a vektoru a = (1, 1) v transformaci podle předcházejícíhopříkladu. [T (A) = [ 1, 2] , T (0) = [ 1 + √ 2, 2 − √ √ ]32 2 4 2 2] , T (a) = (0, 2)2.3 Určete matici inverzní transformace k transformaci podle cvičení 1 z této kapitoly.[ určete T −1 , příp. (pořadí!) T −1 = R S,−45 0 ◦ D sx=2 ]2.4 V prostoru E 2 určete afinní transformaci, která má samodružné body O[0, 0] a A[1, 0]a obrazem bodu B[0, 1] je bod B ′ [1, 1].⎡ ⎛ ⎞⎤1, 0, 0⎣T = ⎝ 1, 1, 0 ⎠⎦0, 0, 12.5 Sestavte matici rotace – jako <strong>geometrické</strong> transformace v E 3 , je-li osou rotace přímkao : x = −t , y = 2t , z = −1 . ⎡⎤⎛T = Po→o −11◦ R −1o 1 →y ◦ R y,ϕ ◦ R o1 →y ◦ P o→o1 ;4cos ϕ + 1, 2cos ϕ − 2, − ⎞2√ 5sin ϕ, 05 5 5 5 52⎢ T = ⎜cos ϕ − 2, 1cos ϕ + 4, − √ 5sin ϕ, 05 5 5 5 5 ⎣ ⎝2 √ √5sin ϕ, 5⎟ ⎥sin ϕ, cos ϕ, 0 ⎠ ⎦5 52 √ √5sin ϕ, 5sin ϕ, cos ϕ − 1, 1 5 52.6 Maticově popište geometrickou transformaci, která vznikne složením rotace okolo osy za posunutí ve směru této osy ⎡(jde o popis šroubového pohybu). ⎛⎞⎤cos ϕ, sin ϕ, 0, 0⎢⎣ matice transformace T = ⎜ − sin ϕ, cos ϕ, 0, 0⎟⎥⎝ 0, 0, 1, 0 ⎠⎦0, 0, v 0 ϕ, 12.7 Kontrolní otázky2.1 Vysvětlete, proč a jak se zavádějí homogenní souřadnice.2.2 Jakou inverzní matici má matice souměrnosti (podle bodu, osy, roviny)? Zdůvodněte.17


Kapitola 3Popis křivek a ploch pro <strong>geometrické</strong><strong>modelování</strong>3.1 Rovnice křivek a plochK popisu křivek a ploch se v diferenciální geometrii používá vektorových funkcí.Definice 3.1 Množinu k ⊂ E 3 nazveme křivkou třídy C n , jestliže existuje aspoň jedna vektorováfunkce P (t) třídy C n s definičním oborem I (otevřený interval) a platí:1. P ′ (t) ≠ o pro každé t ∈ I,2. P (t) je prosté zobrazení intervalu I na množinu k.Definice křivky může být modifikována:• místo zobrazení prostého se požaduje zobrazení homeomorfní, tj. spojité a prosté zobrazení,pro nějž je spojité i inverzní zobrazení a nepožaduje se nenulový vektor prvníderivace — elementární křivka• prostá křivka je souvislá a je “lokálně” elementární křivkou (platí, že křivka je prostoukřivkou, je-li homeomorfním obrazem otevřeného intervalu nebo kružnice)• obecnou křivkou rozumíme lokálně homeomorfní obraz otevřeného intervalu nebo kružnice— zobrazení je lokálně homeomorní, jestliže restrikce zobrazení na okolí libovolného boduje homeomorfismem.Definice 3.2 Množinu κ ⊂ E 3 nazveme plochou třídy C n , jestliže existuje aspoň jedna vektorováfunkce P (u, v) třídy C n s definičním oborem (oblastí) Ω ⊂ R 2 a platí:1.∂P (u,v)∂u= P u a∂P (u,v)∂v= P v jsou pro každé (u, v) ∈ Ω lineárně nezávislé2. P (u, v) je homeomorfismem oblasti Ω na množinu k.18


3.2 Parametrizace křivkyDefinice 3.3 Nechť P (t), t ∈ I je křivka. Nechť je dána reálná funkce φ(t) třídy C n definovanána otevřeném intervalu I ⋆ a nechť φ má na I ⋆ nenulovou první derivaci a zobrazuje intervalI ⋆ na interval I. Uvažujeme-li křivku P (φ(t ⋆ )), t ⋆ ∈ I ⋆ , řekneme, že pro danou křivku bylaprovedena transformace parametru.Věta 3.1 Nechť P (t), t ∈ I a P ⋆ (t ⋆ ), t ⋆ ∈ I ⋆ jsou dvě vyjádření téže křivky. Pak existujetransformace parametru φ(t) tak, žeDůkaz: Plyne z věty o implicitních funkcích.P (t) = P ⋆ (φ(t)), t ∈ I.Zavedení orientace křivky můžeme provést podle toho, je-li mezi dvěma jejími parametrizacemitransformační funkce rostoucí nebo klesající. Tak se parametrizace rozpadnou na dvě třídy.3.3 Parametrické vyjádření kuželoseček3.3.1 KružniceUvažujme kružnici se středem v počátku a s poloměrem r. Parametrické rovnice jsou tvaruVe vektorovém tvaru můžeme psát:x = r cos t, y = r sin t, t ∈ (0, 2π〉P = P 1 cos t + P 2 sin t, t ∈ (0, 2π〉,kde P 1 = (r, 0) a P 2 = (0, r).Obrazem kružnice ve shodnosti je opět kružnice a pro obecně umístěnou kružnici v prostorutedy můžeme napsat její vektorové vyjádření ve tvaruP = S + P 1 cos t + P 2 sin t, t ∈ (0, 2π〉, (3.1)kde S je polohový vektor středu kružnice a vektory P 1 a P 2 jsou na sebe kolmé vektory ostejné velikosti (určují na sebe kolmé poloměry).3.3.2 ElipsaParametrické vyjádření elipsy získáme z tzv. trojúhelníkové konstrukce bodu elipsy - obr. 3.1.Elipsa má v tomto případě parametrické vyjádřeníx = a cos t, y = b sin t, t ∈ (0, 2π〉,kde a, resp. b jsou délky hlavní, resp. vedlejší poloosy elipsy. Podobně jako u kružnice můžemei pro elipsu umístěnou v prostoru psát obecné vektorové vyjádření ve tvaru 3.1. Vektory P 1 aP 2 jsou na sebe kolmé a určují poloosy elipsy.19


Obrázek 3.1:Dá se dokázat, že afinním obrazem elipsy je elipsa. Pokud na bod o polohovém vektoru Pz rovnice 3.1 uplatníme afinní transformaci A, můžeme psátA(P ) = A(S) + A(P 1 ) cos t + A(P 2 ) sin t. (3.2)Polohový vektor bodu elipsy jsme vyjádřili pomocí rovnice, v níž vystupují vektory určujícíprůměry elipsy, které nejsou na sebe kolmé, ale které vznikly z vektorů os afinní transformací.Takové průměry nazýváme sdružené průměry elipsy. V deskriptivní geometrii se konstruují častopro elipsu určenou tímto způsobem pomocí Rytzovy konstrukce osy. To v případě vektorovéhovyjádření není nutné, neboť rovnice 3.2 je tvaru 3.1 s tím, že vektory P 1 a P 2 určují sdruženéprůměry elipsy.Rovnoběžným průmětem elipsy je buď elipsa (speciálně kružnice), nebo úsečka. Průmět E ′křivky (elipsy nebo kružnice) E dané rovnicí 3.1 můžeme určit tak, že vypočteme průmětyvektorů S, P 1 a P 2 – označme je S p , P 1p a P 2p . Jestliže je vektor P 1p násobkem (nulovýmnebo nenulovým) vektoru P 2p , zobrazuje se křivka E do úsečky. Jsou-li vektory P 1p a P 2p nasebe kolmé a mají-li stejnou velikost, je průmětem křivky E kružnice. V ostatních případech sekřivka E promítá do elipsy.Výpočet souřadnic bodů elipsy (odpovídajících pomocí přírůstků parametru t o krok ∆t)provádíme algoritmem založeným na součtových vzorcích pro funkce sin a cos. Pro zajímavostuvádíme odpovídající část programu v jazyku Pascal. Uvažujeme elipsu se středem v bodě S ase sdruženými průměry určenými vektory P 1 a P 2. Složky vektorů (v rovině) značíme indexem.Vysvětlení významu parametru t zde souvisí se známou trojúhelníkovou konstrukcí bodů elipsy.{Předpokládá se deklarace příslušných proměnných ap.}{Dány jsou střed S, vektory P1 a P2 určující sdruženéprůměry a počet tětiv ... n}alfa := 0.0; deltat := 2 * pi / n;cd :=cos(deltat); sd :=sin(deltat);ca := cd; sa := sd;xkon := S[1]+P1[1]; ykon := S[2]+P1[2];tra(xkon,ykon,xkonp,ykonp); {Přepočet souřadnicdo souřadnic obrazovky}MoveTo(xkonp,ykonp); {Přesun}20


FOR i:=1 TO n DO{Cykl pro jednotlivé tětivy}BEGINxkon := S[1]+P1[1]*ca+P2[1]*sa;ykon := S[2]+P1[2]*ca+P2[2]*sa;tra(xkon,ykon,xkonp,ykonp);LineTo(xkonp,ykonp); {Kresba}{Uplatnění součtových vzorců}can := ca*cd - sa*sd; san := sa*cd + ca*sd;ca := can;sa :=san;END;Pokud chceme popsat oblouk kružnice nebo elipsy, stačí zvolit odpovídající interval prohodnoty parametru t.3.3.3 ParabolaVyjdeme-li pro parabolu z rovnice y = x 2 a provedeme-li parametrizaci tak, že položíme x = t,dostaneme parametrické vyjádření paraboly ve tvaruVektorově lze pak psát:x = t, y = t 2 , t ∈ (−∞, ∞).P = P 1 t + P 2 t 2 , t ∈ (−∞, ∞),kde P 1 = (1, 0) a P 2 = (0, 1).Podobně jako u elipsy odvodíme pro parabolu obecně umístěnou v prostoru vyjádření:P = V + P 1 t + P 2 t 2 , t ∈ (−∞, ∞). (3.3)Vektor P 1 určuje směr vrcholové tečny, vektor P 2 je směrem osy paraboly a V je polohovývektor vrcholu paraboly.Afinním obrazem paraboly je opět parabola. Rovnici 3.3 lze chápat pak jako obecnou rovniciparaboly s tím, že V určuje obecný bod paraboly, P 1 je směrovým vektorem tečny v tomtobodě a P 2 určuje směr osy paraboly.3.3.4 HyperbolaPodobně jako pro elipsu lze i pro hyperbolu odvodit parametrické vyjádření. Vyjdeme-li zrovnice hyperboly ve tvaru x 2 − y 2 = 1 a chceme-li provést parametrizaci, musíme najít dvojicifunkcí f(t) a g(t) takovou, že [f(t)] 2 − [g(t)] 2 = 1. Takovou dvojicí funkcí je hyperbolický sinusa hyperbolický kosinus. Značíme je sinh a cosh a jejich definice může být zapsána např. takto:sinh t = et − e −t, cosh t = et + e −t.22Rovnici hyperboly (obecně umístěné v prostoru) lze pak zapsat ve tvaru:21


P = S ± P 1 cosh t + P 2 sinh t, t ∈ (−∞, ∞). (3.4)Význam jednotlivých vektorů v rovnici 3.4 je následující: S je polohovým vektorem středuhyperboly, vektor S + P 1 určuje bod hyperboly a tečna hyperboly v tomto bodě je směru P 2 .Znaménko ± v rovnici 3.4 dovoluje popis celé hyperboly, tj. obou jejích větví. Při praktickémpoužití však musíme zvlášť použít rovnici pro znaménko plus a pro znaménko mínus.3.3.5 Parametrizace pomocí racionálních lomených funkcíVhodnými substitucemi lze provést parametrizaci jednotlivých kuželoseček pomocí racionálníchlomených funkcí:Kružnice – pomocí substituce známé z integrálního počtu máme1 − t 2P = S + P 11 + t + P 2t2 2 , t ∈ (−∞, ∞),1 + t2 kde S je polohový vektor středu kružnice a vektory P 1 a P 2 jsou na sebe kolmé vektoryo stejné velikosti (určují na sebe kolmé poloměry).Elipsa – tvar je formálně shodný s parametrickým vyjádřením kružnice:1 − t 2P = S + P 11 + t + P 2t2 2 , t ∈ (−∞, ∞),1 + t2 kde S je polohový vektor středu kružnice a vektory P 1 a P 2 určují sdružené průměryelipsy.Parabola – je jedinou kuželosečkou, kterou lze popsat parametricky pomocí polynomů, cožjsme již učinili.Hyperbola1 + t 2P = S + P 11 − t + P 2t2 2 , t ∈ (−∞, ∞).1 − t2 Uvedená parametrická vyjádření kuželoseček ukazují, že všechny kuželosečky lze popsat jakoNURBS křivky, o kterých pojednáme v dalším textu.3.4 Tečný vektor, tečna, tečná rovinaDefinice 3.4 Nechť P (t), t ∈ I a nechť t 0 ∈ I. Pak vektor P ′ (t 0 ) nazýváme tečným vektoremkřivky v bodě daném polohovým vektorem P (t 0 ). Tečnou rozumíme přímkuQ(u) = P (t 0 ) + uP ′ (t 0 ), u ∈ RVěta 3.2 Tečný vektor není invariantem vzhledem ke změně parametrizace. Tečna je invariantemvzhledem ke změně parametrizace.22


Důkaz: Je snadným důsledkem věty o derivaci složené funkce.Pro plochu Q(u, v) definovanou na oblasti Ω a křivkuP (t) = (u(t), v(t)), t ∈ I,ležící v oblasti Ω definujeme křivku na ploše předpisemQ(u(t), v(t)), t ∈ IVypočteme tečný vektor křivky na ploše. Platíddt Q(u(t 0), v(t 0 )) = Q u (u(t 0 ), v(t 0 )) dudt (t 0) + Q v (u(t 0 ), v(t 0 )) dvdt (t 0)Tím jsme dokázali následující větu.Věta 3.3 Všechny tečné vektory křivek v daném bodě plochy jsou komplanární.Na základě věty 3.3 můžeme definovat pojem tečné roviny plochy. Normálou plochy rozumímekolmici k tečné rovině v bodě dotyku. Normálový vektor je určen vektorovým součinemn(u 0 , v 0 ) = Q u (u 0 , v 0 ) × Q v (u 0 , v 0 )Parametrizace plochy lze rozdělit na souhlasné a nesouhlasné (podle znaménka Jacobiánu transformace)a zavést pojem orientace plochy.Definice 3.5 Jestliže v bodě P (t 0 ) jsou vektory P ′ (t 0 ) a P ′′ (t 0 ) lineárně závislé, nazývámetento bod inflexním bodem křivky.Oskulační rovina křivky v neinflexním bodě je určena vektory P ′ (t 0 ), P ”(t 0 ).Normálu ležící v oskulační rovině nazýváme hlavní normálou.Binormála je kolmá na tečnu a hlavní normálu.3.5 Oblouk křivky a Frenetovy vzorceDefinujeme funkcis(t) =∫ t √t 0P ′ (t) · P ′ (t)dt.Nazýváme ji obloukem křivky.Platí s ′ (t) = √ P ′ (t) · P ′ (t) > 0. Proto k funkci s(t) existuje inverzní funkce t(s).Věta 3.4 Je dána křivka P (s), s ∈ I. Parametr s je obloukem právě když pro každé s 0 ∈ I| dPds (s 0)| = 123


Důkaz: a) Nechť s je oblouk křivky. Pak| dPds (s 0)| = | dPdt (t(s 0))|| dtds (s 0)| = |s ′ 1(t(s 0 ))||s ′ (t(s 0 )) | = 1b) Nechť je splněno tvrzení věty. Pro danou křivku stanovíme∫ s √∫ s∫ ss ⋆ = P ′ (s).P ′ (s)ds = |P ′ (s)|ds = 1ds = s − s 0s 0 s 0 s 0Tedy s ⋆ je obloukem.Derivaci podle oblouku označujeme tečkou nad označením vektorové funkce.Definice 3.6 Vektor ¨P (s 0 ) nazýváme vektorem první křivosti. První křivostí rozumíme číslo1 k(s 0 ) = | ¨P (s 0 )|Věta 3.5 V neinflexním bodě křivky je vektor první křivosti nenulový a je ortogonální k tečnémuvektoru. První křivost je nulová právě v inflexních bodech.Důkaz: Vyjdeme ze vztahuDerivováním získámeṖ (s 0 ).Ṗ (s 0) = 1Ṗ (s 0 ). ¨P (s 0 ) + ¨P (s 0 ).Ṗ (s 0) = 0,tj. Ṗ (s 0 ). ¨P (s 0 ) = 0. Z toho již snadno plyne tvrzení.Označíme t, n a b jednotkové vektory tečny, hlavní normály a binormály:t(s 0 ) = Ṗ (s 0), n(s 0 ) = ¨P (s 0 )| ¨P (s 0 )| , b(s 0) = t(s 0 ) × n(s 0 )Tuto trojici vektorů (v daném pořadí) nazýváme průvodním (též Frenetovým) trojhranem.Věta 3.6 (Věta o ortonormálním repéru) Nechť jsou dány vektorové funkcem 1 (t), m 2 (t), m 3 (t), t ∈ Itakové, že pro každé t jsou to jednotkové a na sebe kolmé vektory. Pak existují reálné funkcea 12 (t), a 13 (t), a 23 (t), t ∈ Itak, žem ′ 1(t) = a 12 (t)m 2 (t) + a 13 (t)m 3 (t)m ′ 2(t) = −a 12 (t)m 1 (t) + a 23 (t)m 3 (t)m ′ 3(t) = −a 13 (t)m 1 (t) − a 23 (t)m 2 (t)24


Důkaz: Vektory m 1 (t), m 2 (t), m 3 (t) tvoří pro každé t ortonormální bazi a tudíž lze vektoryderivací vyjádřit pomocí nich jako lineární kombinaci. Uvažujmem ′ 1(t) = a 11 (t)m 1 (t) + a 12 (t)m 2 (t) + a 13 (t)m 3 (t) (3.5)m ′ 2(t) = a 21 (t)m 1 (t) + a 22 (t)m 2 (t) + a 23 (t)m 3 (t) (3.6)Jistě platí m 1 (t)m 1 (t) = 1 a po zderivování 2m ′ 1(t)m 1 (t) = 0. Násobíme-li rovnici (3.5) vektorovoufunkcí m 1 (t), obdržíme snadno výsledeka 11 (t) = 0.Podobně ukážeme např. že a 12 (t) = −a 21 (t). Stačí rovnici (3.5) násobit funkcí m 2 (t). Dostanemevztahm 1 ′ (t)m 2 (t) = a 12 (t).Z rovnice (3.6) plyne po vynásobení funkcí m 1 (t) vztahDerivováním vztahu m 1 (t)m 2 (t) = 0 obdržímem 2 ′ (t)m 1 (t) = a 21 (t).m 1 ′ (t)m 2 (t) + m 2 ′ (t)m 1 (t) = 0.Odtud plyne rovnostPodobně se dokáže zbytek tvrzení.a 21 (t) = −a 12 (t).Věta 3.7 (Frenetovy vzorce) . Pro vektorové funkce t(s), n(s), b(s) platíDůkaz: Platítj.Zbytek tvrzení je důsledkem věty 3.6.ṫ(s) = 1 k(s)n(s)ṅ(s) = − 1 k(s)t(s) + 2 k(s)b(s)ḃ(s) = − 2 k(s)n(s)n(s) =¨P (s)| ¨P (s)| = ṫ1k(s) ,ṫ(s) = 1 k(s)n(s).Definice 3.7 Reálná funkce 2 k(s) se nazývá druhá křivost neboli torze.Věta 3.8 Je dána křivka P (s). Označme α(h) odchylku vektorů t(s 0 ) a t(s 0 + h) a β odchylkuvektorů b(s 0 ) a b(s 0 + h) . Platí1 α(h)k(s 0 ) = limh→0 |h| , 2 β(h)k(s 0 ) = limh→0 |h| .25


Důkaz: Naznačíme důkaz prvního tvrzení. Platítj.|t(s 0 + h) − t(s 0 )| = 2 sin α(h)2 ,|t(s 0 + h) − t(s 0 )||h|=sinα(h)2α(h)2α(h)|h| .Limitním přechodem se dokáže první část tvrzení. Podobně se odvodí i druhá část věty.Přehled vzorců pro výpočet první křivosti křivky:• Parametrem oblouk:• Obecný parametr:1 k = | ¨P |1 k 2 = |P ′ × P ”| 2|P ′ .P ′ | 3• Křivka, která je grafem funkce:1 k 2 =y” 2(1 + y ′2 ) 3Přehled vzorců pro výpočet druhé křivosti křivky:• Parametrem oblouk:tj.• Obecný parametr:| 2 k| = |ḃ|,2 k = (Ṗ ¨P P (3) )1k 22 k = (P ′ P ”P (3) )|P ′ × P ”| 23.6 Cvičení3.1 Kružnici parametrizujte obloukem!3.2 Ukažte, že šroubovice je křivkou konstatního spádu, tj. že odchylka tečného vektoru sesměrovým vektorem osy je konstantní!3.3 Vypočtěte první křivost ve vrcholech elipsy!3.4 Určete první křivost a druhou křivost šroubovice!26


3.7 Kontrolní otázky3.1 Jak ověříte, že daná křivka je parametrizována obloukem?3.2 Uveďte Frenetovy vzorce pro rovinnou křivku (uvědomte si, jakou hodnotu má torze)!27


Kapitola 4SplineSpline je většinou chápán jako jako po částech polynomická funkce se spojitou derivací co donejvyššího řádu.Motivace pro zavedení kubického splinu (je matematickým modelem chování pružného laťkovéhokřivítka):• z mechaniky: ohybová energie E je úměrná křivosti κ, tj. ve variační formulaciE = c∫ 10κ 2 ds → min• pro křivost grafu funkce platí• ds = √ 1 + y ′2 dxκ =f” 2(1 + f ′2 ) 3• E = c ∫ 10f” 2(1+f ′2 ) 5 2≈ c ∫ 10 f”2 dx → min• ve variačním počtu se ukazuje, že k určení minima∫g(f, f ′ , f”, x)dxje nutné řešit rovnici (Eulerova-Lagrangeova)Ωg f − ddx g f ′ + d2dx 2 g f” = 0• pro spline platí g f” = 2f”, proto se naše úloha redukuje na rovnici f (4) = 0 a jejím řešenímjsou kubické polynomy.28


4.1 Interpolační křivkyV numerické matematice se používá interpolace funkcí zejména k náhradě funkce polynomem.Na tomto principu pracují algoritmy pro výpočet určitého integrálu apod. V počítačové graficeinterpolace slouží ke kreslení (definování) křivky, pro kterou známe několik bodů (nazýváme jeopěrnými body nebo uzly interpolace). Interpolační křivka těmito body prochází. Problémemvšak je, jak stanovit hodnotu parametru, pro níž obdržíme daný opěrný bod interpolační křivky.Interpolační křivka je tedy dána opěrnými body P 0 , P 1 , . . . , P n a hodnotami t 0 , t 1 , . . . , t nparametru pro tyto body. Má pak vektorové vyjádřenía platíP = P (t), t ∈ 〈t 0 , t n 〉P i = P (t i ), i = 0, . . . , n.Hodnoty parametru t i se většinou určují automaticky. Je-li t i+1 − t i = konst, mluvíme o uniformníparametrizaci interpolační křivky. Nejčastěji se v tomto případě volí t i = i. Pro automatickouneuniformní parametrizaci se používá vztahu t i+1 = t i + k |P i+1 − P i |, kde k je jistákonstanta, tj. přírůstek parametru mezi dvěma opěrnými body křivky je úměrný délce příslušnétětivy křivky. Neuniformní parametrizace se používá zejména v tom případě, že opěrné bodyjsou silně nerovnoměrně rozloženy. Interpolační křivka se zpravidla vytváří z jednotlivých obloukůkřivky, neboť pokud bychom chtěli jednou vektorovou funkcí s polynomickými složkamipopsat celou interpolační křivku, byly by tyto polynomy vysokého stupně (stupně n). Základempro výpočet interpolační křivky po obloucích je tzv. Fergusonova kubika.4.2 Fergusonova kubikaNechť jsou dány body P i a P i+1 s polohovými vektory P i a P i+1 . Označme dále P ′ i a P ′ i+1tečné vektory v těchto bodech. Nechť uvedeným bodům odpovídají hodnoty t i a t i+1 parametru.Fergusonovu kubiku určíme pomocí rovniceP (t) = H 0 (t − t i )P i + H 1 (t − t i )P i+1 + (4.1)+ H 2 (t − t i )P ′ i + H 3 (t − t i )P ′ i+1,kde H i (s) jsou polynomy třetího stupně.Z podmínek P (t i ) = P i , P (t i+1 ) = P i+1 , P ′ (t i ) = P ′ i, P ′ (t i+1 ) = P ′ i+1 určíme vektorykoeficientů u jednotlivých mocnin výrazu t − t i a dojdeme při označení i k = t i+1 − t i , s = t − t ik těmto vztahůmH 0 (s) = 2ik 3 s3 − 3ik 2 s2 + 1,H 1 (s) = − 2ik 3 s3 + 3ik 2 s2 , (4.2)H 2 (s) = 1ik 2 s3 − 2ik s2 + s,H 3 (s) = 1ik 2 s3 − 1ik s2 .29


Pro uniformní parametrizaci t i = 0, t i+1 = 1, tj. i k = 1 získáme ze vztahů 4.2 funkce F i ,které hrají důležitou roli v dalším výkladu:F 0 (t) = 2t 3 − 3t 2 + 1,F 1 (t) = −2t 3 + 3t 2 , (4.3)F 2 (t) = t 3 − 2t 2 + t,F 3 (t) = t 3 − t 2 .Na obr. 4.1 jsou uvedeny grafy těchto funkcí.Obrázek 4.1:Tyto křivky použil prvně v počítačové grafice J.C.Ferguson pro konstruování křivek v leteckémprůmyslu. Je třeba zdůraznit, že pro tvar Fergusonovy kubiky má značný význam délkatečných vektorů.Příklad 4.1 Určíme, kdy Fergusonova kubika degeneruje na křivku nižšího stupně (konkrétněna parabolu). Pro jednoduchost uvažujme, že jsou dány vektory P 0 = [−1, 0], P 1 = [1, 0],P ′ 0 = [a, a] a P ′ 1 = [a, −a], kde a je kladná konstanta (načrtněte si obrázek!). Uvažujmeuniformní parametrizaci t 0 = 0 a t 1 = 1.Řešení: Vyjdeme z rovnic 4.1 a 4.3. Máme určit a tak (je-li to možné), aby koeficienty u členut 3 v jednotlivých parametrických rovnicích byly nulové. Tak získáme vektorovou rovnici2P 0 − 2P 1 + P ′ 0 + P ′ 1 = o.Pro druhou složku zjevně dostáváme identitu, ale pro první složku platí−4 + 2a = 0,tj. a = 2. Vzhledem k rovnicím 4.1 a 4.3 má získaná křivka toto vyjádření:P (t) = F 0 (t)[−1, 0] + F 1 (t)[1, 0] + F 2 (t)[2, 2] + F 3 (t)[2, −2],30


tj.x = 2t − 1, y = −2t 2 + 2t, t ∈ 〈0, 1〉a můžeme provést i úpravu na explicitní tvar rovnice:y = − 1 2 x2 + 1 2 .□4.3 Kubické spline křivkySpline křivky patří k často užívaným interpolačním křivkám v technické praxi. Jsou totiž matematickýmmodelem chování pružného laťkového křivítka, které v minulosti používali konstruktéřitrupů lodí, když z několika významných profilů trupu lodi odvozovali (interpolovali) dalšíprofily. Z hlediska praxe mají zásadní význam kubické spline křivky. Výklad proto omezímepouze na tuto skupinu spline křivek. Nejprve budeme definovat pojem kubické spline funkce:Nechť je dána posloupnost x 0 < x 1 < . . . < x n a funkční hodnoty y 0 , y 1 , . . . , y n . Kubickou splinefunkcí f(x) rozumíme interpolační funkci, tj. platí f(x i ) = y i , která je na každém z intervalů〈x i , x i+1 〉 polynomem třetího stupně a funkce f má spojitou první a druhou derivaci v intervalu(x 0 , x n ).Zadáním opěrných bodů však není kubická spline funkce určena jednoznačně, neboť kubicképolynomy (je jich n) mají celkem 4n koeficientů a k dispozici máme 4n − 2 podmínek (krajníbody jednotlivých úseků ... 2n podmínek, spojitost první derivace ... n−1 podmínek a spojitostdruhé derivace ... n − 1 podmínek). Je zřejmé, že k určení kubické spline funkce je třebazvolit ještě dvě další podmínky. Zpravidla se zadávají hodnoty první derivace v počátečním akoncovém bodě křivky nebo hodnoty druhé derivace v těchto bodech (speciálně se často volí“podmínka volného konce”, tj. nulová druhá derivace v krajních bodech).Spline křivkou (kubickou) pro dané opěrné body P 0 , P 1 , . . . , P n a dané hodnoty parametrut 0 < t 1 < . . . < t n rozumíme křivku P = P (t), t ∈ 〈t 0 , t n 〉, pro níž každá ze složek vektorovéfunkce P (t) je kubickou spline funkcí. Zadání hodnot parametru pro opěrné body se většinourealizuje jistým algoritmem. Např. se volí uniformní parametrizace t i = i nebo neuniformníparametrizace, v níž krok parametru pro oblouk spline křivky je dán vzdáleností krajních bodůoblouku.Výpočet kubické spline křivky je možné provést tak, že nejprve určíme tečné vektory křivkyv opěrných bodech a pak jednotlivé oblouky spline křivky vypočteme jako Fergusonovy kubikypodle vztahů 4.1 a 4.2.Označme P ′ i, i = 0, . . . , n hledané tečné vektory kubické spline křivky v opěrných bodech.Vzhledem k požadavku spojitosti druhé derivace získáme z 4.1 a 4.2 po úpravách vztah=1ik P ′ i + ( 2ik + 2i+1k )P ′ i+1 + 1i+1k P ′ i+2 = (4.4)3i+1k P 2 i+2 + ( 3ik − 32 i+1k )P 2 i+1 − 3ik P i,2kde i = 0, . . . , n − 2.Další dvě rovnice pro výpočet tečných vektorů se zpravidla odvodí z některé z následujícíchpodmínek:31


a) Je dáno P ′ 0 a P ′ n, tj. je dán tečný vektor v počátečním a koncovém bodě křivky. Pak másoustava 4.4 již jediné řešení.b) Jsou dány vektory A a B druhých derivací v počátečním a koncovém bodě křivky. V tomtopřípadě z 4.1 a 4.2 doplníme soustavu 4.4 o rovnice2P ′ 0 + P ′ 1 = 30k (P 1 − P 0 ) −P ′ n−1 + 2P ′ n =0 k23n−1k (P n − P n−1 ) +A, (4.5)n−1 k2 B.Speciálně pro A = B = o dostáváme tzv. kubický přirozený spline.c) Podmínka uzavřenosti křivky vede k doplnění soustavy 4.4 a další dvě rovnice, které získámepoužitím formule 4.4 pro i = n − 1 a i = n s tím, že od indexů větších než n odečtemen + 1.Řešení soustavy n rovnic o n neznámých vektorech provádíme s výhodou Gaussovou eliminací.Matice soustavy je pro všechny složky vektorů stejná, proto lze provést přímý chodGaussovy eliminace najednou pro různé pravé strany. Matice soustavy je diagonálně dominantnía pro případ a) a b) je navíc tato matice třídiagonální.Příklad 4.2 Určíme prostorovou kubickou spline křivku pro body (0,0,0), (1,0,0), (1,1,1) a(0,0,1). Uvažujeme uniformní parametrizaci a bude se jednat o přirozenou spline křivku.Řešení: Ze vztahů 4.4 a 4.5 vzhledem k tomu, že A = B = o a i k = 1, plyne2P ′ 0 +P ′ 1 = 3(P 1 − P 0 )P ′ 0 +4P ′ 1 +P ′ 2 = 3(P 2 − P 0 )P ′ 1 +4P ′ 2 +P ′ 3 = 3(P 3 − P 1 )P ′ 2 +2P ′ 3 = 3(P 3 − P 2 )a rozšířenou matici můžeme pro Gaussovu eliminaci zapsat ve tvaru⎡⎤2 1 0 0 : 3 0 0⎢ 1 4 1 0 : 3 3 3⎥⎣ 0 1 4 1 : −3 0 3 ⎦ .0 0 1 2 : −3 −3 0Řešením soustavy jsou tečné vektory v opěrných bodech křivky. Jednotlivé oblouky pak lzeurčit jako Fergusonovy kubiky.□Na obr. 4.2 je znázorněna přirozená prostorová spline křivka třetího stupně pro uniformníparametrizaci.Na obr. 4.3 je znázorněna přirozená prostorová spline křivka třetího stupně pro neuniformníparametrizaci (byla zvolena výrazně nevhodná parametrizace). Na obr. 4.4 je znázorněna splinekřivka pro stejné zadání bodů a okrajových podmínek, ovšem použita je chordálové parametrizace.32


Obrázek 4.2:4.4 Spline stupně sPředpokládáme, že stupeň s ≥ 1, což již dále nezdůrazňujeme.K určení jednoho oblouku spline křivky je rozumné požadovat kromě krajních bodů i vektoryderivací v krajních bodech, a to ve stejném počtu (důvodem je symetrie, tj. nemělo by záležetna orientaci křivky). Tedy segment křivky je určen sudým počtem podmínek. Proto má smyslzabývat se jen spline křivkami lichého stupně (ty mají sudý počet koeficientů).Nechť jsou dány body P 0 , . . . , P n . Celkem máme tedy určit n polynomů stupně s. Polynomstupně s je určen s + 1 koeficienty. K tomu abychom tedy pro dané body určili spline stupně s,potřebujeme n(s + 1) podmínek.Z definice splinu máme následující podmínky:• jsou dány krajní body každého oblouku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2n podmínek• spojitost derivace až do řádu (s − 1)v bodech P 1 , . . . , P n−1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (s − 1)(n − 1) podmínekK úplnému určení je tedy nutné doplnit zadání dalšími d podmínkami. Jejich počet je dánvztahemd = n(s + 1) − [2n + (s − 1)(n − 1)] = s − 1Tím jsme dokázali větu:Věta 4.1 Pro otevřenou spline křivku stupně s (s liché, s > 0) je nutné volit parametrizaci adalších s − 1 podmínek.Věta 4.2 Uzavřená spline křivka stupně s (s liché, s > 0) je jednoznačně určena svými opěrnýmibody a parametrizací.Důkaz: V bodě P 0 = P n je nutné zajistit spojitost prvních s − 1 derivací, tj. je dáno s − 1podmínek. Podle věty 4.1 již plyne tvrzení věty (samozřejmě by se mělo ukázat, že soustavaodpovídajících rovnic má právě jedno řešení).33


4.5 CvičeníObrázek 4.3: Obrázek 4.4:4.1 Určete tečné vektory v opěrných bodech pro uzavřenou uniformní kubickou spline křivkudanou bodyP 0 [0, 0, 0], P 1 [1, 1, 1], P 2 [0, 0, 1].4.2 Sestavte rozšířenou matici soustavy pro určení tečných vektorů v opěrných bodech rovinnéuniformníkubické spline křivky dané bodyP 0 [0, 0], P 1 [1, 1], P 2 [0, 1], P 3 [−1, 0]a tečnými vektory P 0 = (1, 0) a P 3 = (0, −1).4.6 Kontrolní otázky4.1 Čím je určena Fergusonova kubika?4.2 Proč se využívají zejména spline křivky lichých stupňu?4.3 Vysvětlete pojmy přirozený spline, uniformní spline a spline s chordálovou parametrizací!4.4 Popište algoritmus výpočtu kubické spline křivky!34


Kapitola 5Bézierovy křivkyTeorie Bézierových křivek se začala koncipovat v letech 1959-62. V roce 1970 R. Forrest ukázalna vazby mezi pracemi P.E. Béziera a teorií Bernsteinových polynomů, která měla původněvýznam především v teorii aproximace funkcí.Uvažujme lomenou čáru (řídicí polygon) o vrcholech V 1 , . . . , V n s polohovými vektory V 1 , . . . , V n ,(n ≥ 2). Bézierovou křivkou pro tento řídicí polygon rozumíme křivkuP (t) =n∑V i Bi n (t), t ∈< 0, 1 >,i=1kde Bi n (t) jsou Bernsteinovy polynomy (přesněji baze prostoru Bernsteinových polynomů), tj.( ) n − 1Bi n (t) = t i−1 (1 − t) n−i ,i − 1i = 1, . . . , n, kde definitoricky položíme ( 00)= 1 a( n0)= 1.Obrázek 5.1: Obrázek 5.2:35


Obrázek 5.3: Obrázek 5.4:5.1 Bézierova kubikaPro n = 4 jsou polynomy Bernsteinovy polynomy tvaru (horní index 4 zde vynecháváme):B 1 (t) = (1 − t) 3 ,B 2 (t) = 3t(1 − t) 2 ,B 3 (t) = 3t 2 (1 − t),B 4 (t) = t 3 .Křivka je v tomto případě kubikou a mluvíme o Bézierově kubice. Je určena řídicím polygonemV 1 , V 2 , V 3 , V 4 .5.2 Vlastnosti Bernsteinových polynomůUvedeme některé vlastnosti polynomů :• B n i (t) ≥ 0 pro t ∈< 0, 1 > a i = 1, . . . , n.Tato vlastnost plyne z toho, že pro t ∈< 0, 1 > jsou všechny tři součinitele v definiciBernsteinových polynomů nezáporné.• Pro n > 2 a 1 < i < n platí rekurentní formuleBi n (t) = (1 − t)B n−1i (t) + tB n−1i−1 (t),kde B1(t) q = (1 − t) q−1 a Bq(t) q = t q−1 pro q = 2, . . . , n − 1. Vlastní formule je pakdůsledkem platnosti vztahu( ( ) ( )p p − 1 p − 1= +r)r r − 1pro kombinační čísla.36


• Platín∑Bi n (t) = 1pro každé t. Identita je důsledkem binomické věty. Platí totižn∑Bi n (t) =i=1n∑i=1• Pro derivaci funkce B n i (t) platí:B n′B n′i=11 (t) = −(n − 1)(1 − t) n−2 ,n (t) = (n − 1)t n−2 ,Bi n′ (t) = ( n−1( ) n − 1t i−1 (1 − t) n−i = (t + 1 − t) n−1 = 1.i − 1i−1)[(i − 1)t i−2 (1 − t) n−i − (n − i)t i−1 (1 − t) n−i−1 ],i = 2, . . . , n − 1.5.3 Vlastnosti Bézierových křivekZ uvedených vlastností Bernsteinových polynomů můžeme odvodit následující vlastnosti Bézierovýchkřivek.1. Počátečním bodem Bézierovy křivky je bod s polohovým vektorem V 1 a koncovým bodemje bod s polohovým vektorem V n .Snadno totiž vypočteme:n∑P (0) = V i Bi n (0) = V 1 ,i−1neboť pro i > 1(i ≤ n) platí B n i (0) = 0 a B n 1 (0) = 1.Obrázek 5.5: Obrázek 5.6:37


2. Bézierova křivka se v počátečním bodě dotýká první strany řídicího polygonu a v koncovémbodě se dotýká poslední strany tohoto polygonu.Důkaz provedeme pomocí výpočtu první derivace vektorové funkce P (t) a v příslušnémbodě. Pro t = 0 plyne B1 n′ (0) = −(n − 1), B2 n′ (0) = n − 1 a pro i ≥ 2 platí Bi n′ (0) = 0.TedyP ′ (0) = (n − 1)(V 2 − V 1 ).Podobně plyne Bn n′ (1) = n − 1, Bn−1(1) n′ = −(n − 1) a proi < n − 1, (i > 0), Bi n (1) = 0. ProtoP ′ (1) = (n − 1)(V n − V n−1 ).Z uvedených vztahů plyne, že Bézierova kubika (n = 4) je Fergusonovou kubikou probody V 1 a V 4 a pro tečné vektory 3(V 2 − V 1 ) a 3(V 4 − V 3 ) v těchto bodech.3. Jestliže algoritmy výpočtu hodnot Bernsteinových polynomů aplikujeme na výpočet bodůBézierovy křivky, dostaneme tzv. algoritmus de Casteljau - obr. 5.6. Strany řídícího polygokujsou opakovaně děleny v poměru, který odpovídá hodnotě parametru určovanéhobodu křivky. Na obr. 5.6 se jedná o určení bodu pro parametr t = 0, 5.4. Z definice Bézierovy křivky pro polygon V 1 , . . . , V n plyne, že se jedná o křivku stupně ažn − 1. Ve zvláštních případech se však může stát, že koeficienty u členu t n−1 jsou nulové.V aplikacích dochází k situaci, že místo řídicího polygonu V 1 , . . . , V n hledáme polygonV1 ∗ , . . . , Vn ∗ , Vn+1 ∗ tak, aby oba určovaly stejnou Bézierovu křivku. Zvýšením počtu vrcholůřídicího polygonu se např. rozšíří možnosti tvarování křivky. Aby oba polygony určovalystejnou Bézierovu křivku, musí platitpro t ∈< 0, 1 >. Platí, žekde α i = i−1n .n∑∑n+1V i Bi n (t) = V ∗ jB n+1j (t)i=1j=1V ∗ 1 = V 1 , V ∗ n+1 = V n ,V ∗ i = α i V i−1 + (1 − α i )V i ,5. Ukážeme, jak lze vytvořit křivku složením z několika Bézierových křivek.Uvažujme Bézierovy křivky 1 P ( 1 t), 1 t ∈< 0, 1 >, resp. 2 P ( 2 t), 2 t ∈< 0, 1 > s řídicímipolygony 1 V 1 , . . . 1 V n , resp. 2 V 1 , . . . , 2 V m . Nechť 1 V n = 2 V 1 . Jelikož platí1 P ′ (1) = (n − 1)( 1 V n − 1 V n−1 ),2 P ′ (0) = (m − 1)( 2 V 2 − 2 V 1 ),stačí k zajištění dotyku Bézierových křivek, aby body 1 V n−1 , 1 V n = 2 V 1 a 2 V 2 ležely najedné přímce ( 1 V n−1 ≠ 1 V n , 2 V 1 ≠ 2 V 2 ). Pokud bychom však požadovali spojitost prvníderivace vektorové funkce, je nutné zajistit platnost vztahu(n − 1)( 1 V n − 1 V n−1 ) = (m − 1)( 2 V 2 − 2 V 1 ).38


6. Libovolný polynom stupně n lze vyjádřit jako lineární Bernsteinových polynomů B n+1j , j =1, . . . , n + 1. Proto je možné libovolnou interpolační křivku, která vznikla interpolací algebraickýmipolynomy získat také jako Bézierovu křivku.5.4 Cvičení5.1 Určete Bézierovu křivku pro řídící polygon daný body[−1, 0], [0, 2], [1, 0].5.2 Zvolte si pět bodů a pro hodnotu t = 0, 25 prove+dte algoritmus de Casteljau.5.5 Kontrolní otázky5.1 Uveďte, z jaké vlastnosti Bernsteinových polynomů plyne nezávislost Bézierovy křivky naorientaci řídícího polygonu!5.2 Vysvětlete podmínku konvexního obalu pro Bézierovy křivky!5.3 Uveďte výhody a nevýhody Bézierových křivek!5.4 Vysvětlete, proč je algortimus de Castejau afinně invariantní, a uveďte použití této vlastnosti!39


Kapitola 6B–spline6.1 Coonsův B–splineTato kubika má s Bézierovou kubikou podobný způsob zadávání. Rovněž pro Coonsovu kubikuzadáváme čtyři body V 1 , V 2 , V 3 a V 4 , které tvoří charakteristický polygon (později vysvětlímevztah k řídicímu polygonu).Coonsova kubika má rovnicikdeP (t) = 1 64∑V i C i (t), t ∈< 0, 1 >,i=1C 1 (t) = −t 3 + 3t 2 − 3t + 1,C 2 (t) = 3t 3 − 6t 2 + 4,C 3 (t) = −3t 3 + 3t 2 + 3t + 1,C 4 (t) = t 3 .6.1.1 Vlastnosti Coonsovy kubiky1. Vypočteme C 1 (0) = 1, C 2 (0) = 4, C 3 (0) = 1 a C 4 (0) = 0, tj. P (0) = 1 6 (V 1 + 4V 2 + V 3 ).Určený polohovým vektorem P (0) je ”antitěžištěm” trojúhelníka V 1 V 2 V 3 pro vrchol V 2 , tj.leží na těžnici trojúhelníka procházející vrcholem V 2 a vzdálenost bodů V 2 P (0) se rovnájedné třetině délky těžnice.Bod P (1) je antitěžištěm trojúhelníka V 2 V 3 V 4 pro vrchol V 3 .2. Stanovíme tečné vektory P ′ (0) a P ′ (1) Coonsovy kubiky. PlatíC 1(t) ′ = −3(1 − t) 2 ,C 2(t) ′ = 9t 2 − 12t,C 3(t) ′ = −9t 2 + 6t + 3,C 4(t) ′ = 3t 2 .40


VypočtemeP ′ (0) = 1 64∑V i C i(0) ′ = 1 6 (−3V 1 + 3V 3 ) = 1 2 (V 3 − V 1 ),i=1P ′ (1) = 1 64∑V i C i(1) ′ = 1 6 (−3V 2 + 3V 4 ) = 1 2 (V 4 − V 2 ),i=1tj. tečna Coonsovy kubiky v bodě P (0) je rovnoběžná s přímkou V 1 V 3 a tečna v bodě P (1)je rovnoběžná s přímkou V 2 V 4 . Vzhledem k vlastnosti 1. jsme navíc ukázali, že Coonsovakubika je Fergusonovou kubikou pro body s polohovými vektory 1 6 (V 1 + 4V 2 + V 3 ) a16 (V 2 + 4V 3 + V 4 ) a tečné vektory 1 2 (V 3 − V 1 ) a 1 2 (V 4 − V 2 ).3. Určíme vektory P ”(0) a P ”(1). VypočtemeProto platíC” 1 (t) = 6(1 − t),C” 2 (t) = 18t − 12,C” 3 (t) = −18t + 6,C” 4 (t) = 6t.P ”(0) = 1 6 (6V 1 − 12V 2 + 6V 3 ) = V 1 − 2V 2 + V 3 ,P ”(1) = 1 6 (6V 2 − 12V 3 + 6V 4 ) = V 2 − 2V 3 + V 4 .4. Body Coonsovy kubiky leží v konvexním obalu množinyM = {V 1 , V 2 , V 3 , V 4 }.Důkaz uvedené vlastnosti Coonsovy kubiky plyne z toho, že164∑C i (t) = 1 pro každé t.i=15. Uvedeme ještě některé speciální případy zadávání Coonsovy kubiky:(a) Leží-li body V 1 , V 2 , V 3 a V 4 v přímce, pak odpovídající Coonsova kubika je úsečkouna této přímce.(b) Splynou-li body V 1 a V 2 (V 1 ≠ V 3 ), leží bod P (0) na přímce V 1 V 3 platíP (0) − V 1 = 1 6 (V 3 − V 1 ).Bod V 1 = V 2 nazveme dvojnásobným bodem charakteristického polygonu Coonsovykubiky.(c) Jestliže splynou body V 1 , V 2 a V 3 (V 4 ≠ V 1 ), pak P (0) = V 1 a Coonsova kubika jeúsečkou s druhým krajním bodem o polohovém vektoru P (1) = V 1 + 1 6 (V 4 − V 1 ).Bod V 1 = V 2 = V 3 nazveme trojnásobným bodem charakteristického polygonu Coonsovykubiky.41


6.1.2 Napojování Coonsových kubikUvažujme dvě Coonsovy kubikyP (t) = 1 64∑V i C i (t), t ∈< 0, 1 >,i=1R(s) = 1 64∑W i C i (s), s ∈< 0, 1 > .i=1Odvodíme podmínky, které vyplývají pro charakteristické polygony V 1 , V 2 , V 3 , V 4 a W 1 , W 2 ,W 3 , W 4 z požadavkuP (i) (1) = R (i) (0), i = 0, 1, 2.Pro i = 0 se jedná o podmínku P (1) = R(0), tj.V 2 + 4V 3 + V 4 = W 1 + 4W 2 + W 3 . (6.1)Spojitost vektoru první derivace ve společném bodě křivek vede k podmíncePožadavek spojitosti vektoru druhé derivace:V 4 − V 2 = W 3 − W 1 . (6.2)V 2 − 2V 3 + V 4 = W 1 − 2W 2 + W 3 . (6.3)Ze soustavy tvořené odvozenými rovnicemi (6.1), (6.2), (6.3) snadno plyneW 1 = V 2 , W 2 = V 3 , W 3 = V 4 .Poloha bodů V 1 a W 4 nemá vliv na “kvalitu” napojení Coonsových kubik. Odvozené podmínkyvedou k tomu, že můžeme uvažovat charakteristický polygon V 1 , V 2 , . . . , V n , n ≥ 4 a vytvořitkřivku C z n − 3 Coonsových kubik C 1 , . . . , C n−3 , kde kubika C i je určena charakteristickýmpolygonem V i , V i+1 , V i+2 , V i+3 . Pokud uvažujeme pro charakteristický polygon V 1 , . . . , V n , n ≥ 3,uzavřenou křivku C, vytvoříme ji z n Coonsových kubik C 1 , . . . , C n , kde kubika C i je opět určenacharakteristickým polygonem V i , V i+1 , V i+2 , V i+3 , ale indexy vrcholů je nutné brát tak, že proj > n je V j = V j−n .6.1.3 Řídicí polygon Coonsova B-splinuUvedeme pojem řídicího polygonu pro otevřené Coonsovy B-spline křivky. Vyjdeme z toho, žek polygonu V 1 , V 2 , V 3 , V 4 zkonstruujeme polygon V1 ∗ , V2 ∗ , V3 ∗ , V4 ∗ tak, aby Bézierova kubika propolygon V 1 , V 2 , V 3 , V 4 splynula s Coonsovou kubikou pro polygon V1 ∗ , V2 ∗ , V3 ∗ , V4 ∗ . Z vlastnostíCoonsovy kubiky plyneV 1 = 1(V ∗ 6 1 + 4V ∗ 2 + V ∗ 3),V 4 = 1(V ∗ 6 2 + 4V ∗ 3 + V ∗ 4).42


Porovnáním vztahů pro výpočet tečných vektorů v počátečním a koncovém bodě Bézierovy aCoonsovy B-spline křivky odvodíme3(V 2 − V 1 ) = 1 2 (V ∗ 3 − V ∗ 1)3(V 4 − V 3 ) = 1 2 (V ∗ 4 − V ∗ 2).Po úpravách soustavy uvedených rovnic lze psátV ∗ 1 = 6V 1 − 7V 2 + 2V 3 = V 3 + (V 3 − V 2 ) + 6(V 1 − V 2 ),V ∗ 2 = 2V 2 − V 3 = V 2 + (V 2 − V 3 ), (6.4)V ∗ 3 = −V 2 + 2V 3 = V 3 + (V 3 − V 2 ),V ∗ 4 = 2V 2 − 7V 3 + 6V 4 = V 2 + (V 2 − V 3 ) + 6(V 4 − V 3 ).Z těchto vztahů plyne i geometrická interpretace konstrukce bodů V ∗1 , V ∗2 , V ∗3 , V ∗4 .Coonsovou kubikou pro řídicí polygon V 1 , V 2 , V 3 , V 4 rozumíme Coonsovu kubiku pro charakteristickýpolygon V1 ∗ , V2 ∗ , V3 ∗ , V4 ∗ . Je totožná s Bézierovou kubikou pro tento polygon.Nechť je nyní dán polygon V 1 , . . . , V n (n > 4). Určíme polygon V ∗1 , V ∗2 , . . . , V ∗n tak, aby CoonsovaB-spline křivka měla počáteční bod v bodě V 1 , koncový bod v bodě V n a dotýkala se vtěchto bodech stran V 1 V 2 , resp. V n−1 V n řídicího polygonu. Je zřejmé, žeV ∗ 1 = V 3 + 6(V 1 − V 2 ),V ∗ 2 = V 2 − 1 2 (V 3 − V 2 ),V ∗ i = V i , i = 3, . . . , n − 2, (6.5)V ∗ n−1 = V n−1 − 1 2 (V n−2 − V n−1 ),V ∗ n = V n−2 + 6(V n − V n−1 ).(6.6)Coonsovým B-splinem pro řídicí polygon V 1 , . . . , V n rozumíme Coonsův B-spline pro charakteristickýpolygon V1 ∗ , . . . , Vn ∗ , který pro n = 4 získáme podle (6.4) a pro n > 4 podle(6.5).6.2 B–spline bazeZákladem pro teorii Bézierových křivek a ploch byly Bernsteinovy polynomy. Pro B–splinekřivky je použito definování bázových funkcí po částech s tím, že tyto funkce jsou spline funkcemi,tj. jsou to po částech polynomické funkce se “spojitou derivací co do nejvyššího řádu”Označme T = (t 1 , . . . , t m ) tzv. vektor parametrizace. Platít 1 ≤ t 2 ≤ . . . ≤ t m .B–spline baze je tvořena funkcemi (polynomy) N ik řádu k definovanými předpisem:43


• pro k = 1• pro k > 1N ik (t) ={ 1 pro ti ≤ t < tN i1 (t) =i+10 jindet − t iN i,k−1 (t) +t i+k − tN i+1,k−1 (t) (6.7)t i+k−1 − t i t i+k − t i+1Je nutné vzít v úvahu, že v tomto výrazu mohou vzniknout výrazy typu a , které definitoricky0položíme rovny nule.B-spline baze je tedy charakterizována:• řádem k polynomů (polynomy jsou stupně k − 1)• vektorem parametrizace, tj.– číslem m – počet složek vektoru parametrizace,– složkami t 1 ≤ t 2 ≤ . . . ≤ t m• číslem j – počet funkcí tvořících bazi.Mezi uvedenými charakteristikami musí být, jak plyne ze vztahu (6.7), jistá vazba: Ke stanovenífunkce N in musí být v parametrickém vektoru k dispozici až složka t i+n . Jelikož hodnotai pro n = k nabývá maximální hodnoty j, musí platit m ≥ k + j. Stačí však volit m = k + j, tj.počet složek parametrického vektoru je roven součtu řádu B-spline baze a počtu funkcí baze.Ukážeme nyní, že Bernsteinovy polynomy jsou speciální B-spline bazí. Pro Bernsteinovypolynomy řádu n platí: j = n a k = n. Proto pro počet m složek parametrického vektoru platím = 2n. Pro Bernsteinův polynom platí t ∈< 0, 1 >, proto volímet 1 = t 2 = . . . = t n = 0 a t n+1 = t n+2 = . . . = t 2n = 1Matematickou indukcí podle stupně polynomu provedeme pro takto sestavený parametrickývektor důkaz, že B-spline baze splyne se systémem Bernsteinových polynomů:1. Nechť k = 2, pak parametrický vektor T = (0, 0, 1, 1) aN 12 (t) = t N 11(t)0+ (1 − t)N 21(t)1 − 0= (1 − t)N 21 (t),tj. na intervalu < 0, 1 > je N 12 (t) = (1 − t) = B 2 1(t). Podobně zjistíme, že N 12 (t) = t =B 2 2(t).2. Nechť nyní tvrzení platí pro k = n 0 , tj. mámeN i,n0 +1(t) = (t − t i)B n 0i (t)+ (t i+n 0 +1 − t)B n 0,t i+n0 − t i t i+n0 +1 − t i+1Jelikož pro i ≤ n 0 je t i = t i+1 = 0 a t i+n0 = t i+n0 +1 = 1, platía tvrzení je dokázáno.i+1 (t)N i,n0 +1(t) = tB n 0i (t) + (1 − t)B n 0i+1 (t) = Bn 0+1i (t)44


6.3 B-spline křivkyB-spline křivku řádu k pro řídící polygon V 1 , . . . , V j , k ≤ j, a vektor parametrizace T =(t 1 , . . . , t m ) definujeme předpisemP (t) =j∑V i N ik (t)i=1Vlastnosti B-spline křivek:1. Volba vektoru parametrizacePro otevřené křivky se nejčastěji používá parametrizace ve tvarut 1 = . . . = t k = 0, t k+1 = 1, . . . , t k+s = s, . . .t j+1 = . . . = t k+j = j − k + 1.Pro uzavřené křivky je nutné indexy vrcholů polygonu, resp. složek vektoru parametrizacepoužít cyklicky. Uvedené parametrizace jsou příkladem uniformní parametrizace. Neuniformníparametrizace může ve vektoru parametrizace respektovat např. poměry délekstran řídícího polygonu a tím se aspoň částečně blížit k ideálu přirozené parametrizace.2. Lokalizace změnPoloha bodu V s ovlivňuje tvar křivky pro parametr t v intervalu < t s , t s+k >. Vliv změnypolohy řídících bodů je tedy lokalizován, tj. obecně nedochází ke změně celé křivky.3. HladkostB-spline křivka je spline křivkou, tj. je třídy C k−2 . Speciální konstrukcí vektoru parametrizace(uvedením násobných hodnot) lze vytvářet na křivce singulární body, resp. snížitv odpovídajícím bodě třídu spojitosti.4. Podmínka konvexního obaluPodmínka konvexního obalu je lokalizována vždy na k po sobě jdoucích vrcholů.5. Coonsův B-splineCoonsův B-spline (jeden oblouk) je speciálním případem B-spline křivky pro:• řád k = 4• T = (−3, −2, −1, 0, 1, 2, 3, 4), tj. m=8• počet vrcholů charakteristického polygonu j = 4.6.4 de Boorův algoritmusAlgoritmus de Casteljau, který jsme používali v případě Bézierových křivek, má pro B-splineobdobu v de Boorově algoritmu. Oba algoritmy se liší tím, že v případě algoritmu de Casteljause dělení stran řídícího polygonu provádí v konstantním poměru. V případě neuniformníhoB-splinu je poměr dělení proměnný a závisí na rozdílech složek vektoru parametrizace.45


Odvodíme potřebné vztahy pro provádění de Boorova algoritmu. PlatíP (t) =j∑V i N ik (t) =i=1=j∑i=1V it − t iN i,k−1 (t) +t i+k−1 − t ij∑i=1V it i+k − tN i+1,k−1 (t)t i+k − t i+1V druhé sumě posuneme index o jedna směrem dolu a doplňme V 0 = V j+1 = o. DostanemeP (t) =j+1∑i=1Opakováním tohoto postupu získámeV i (t − t i ) + V i−1 (t i+k−1 − t)t i+k−1 − t iN i,k−1 (t) ==j+1∑i=1P (t) =j+s∑i=11 V i N i,k−1 (t).s V i N i,k−s (t),kdeas V i = (1 − s α i ) s−1 V i−1 + s α i s−1 V is α i =t − t it i+k−s − t i.6.5 Zvýšení počtu vrcholů řídicího polygonuPodobně jako pro Bézierovy křivky lze i pro B-spline stanovit postup konstrukce polygonu,který má o jeden vrchol více a určuje stejnou křivku. Zde je však nutné zadat odpovídajícíparametr t ∗ .6.6 Cvičení6.1 Zvolte si rovinný řídící polygon o pěti vrcholech a načtrněte Coonsův B-spline, který muodpovídá!6.2 Zvote si tři body a navrhněte způsob generování Coonsova B-splinu pro tyto body! Křivkunačtrněte!46


6.7 Kontrolní otázky6.1 Uveďte přednosti B-spline oproti Bézierovým křivkám!6.2 Čím je určena obecná B-spline křivka?6.3 Kdy B-spline přechází v Bézierovu křivku?6.4 Vysvětlete podstatu de Boorova algoritmu!47


Kapitola 7NURBS7.1 PrincipPodstatnou je použití odpovídajících rovnic pro Bézierovy a B-spline křivky v prostoru homogenníchsouřadnic.Důvody k tomuto kroku jsou:• možnost popisu křivek, které nebylo možné popsat klasickými metodami (kuželosečkys výjimkou paraboly),• řídicí lomená čára může mít i nevlastní body, tj. afinní invariantnost se rozšiřuje naprojektivní invariantnost,• pro tváření křivky jsou k dispozici další parametry – váhy vrcholů řídicího polygonu.7.2 Racionální Bézierovy křivkyUvažujme body dané v homogenních souřadnicích:V ∗ i = ( 1 x ∗ i , 2 x ∗ i , 3 x ∗ i , β i ), i = 1, . . . , n,kde j x ∗ i = j x i β i a označme V i = ( 1 x i , 2 x i , 3 x i ). Pokud aplikujeme výpočet Bézierovy křivkyna takto určené body a pak přejdeme ke kartézským souřadnicím, obdržímeP (t) =∑ ni=1 β iV i B n i (t)∑ ni=1 β iB n i (t) (7.1)Jestliže jsou všechny váhy rovny jedné, přechází racionální Bézierova křivka v Bézierovukřivku.Pro racionální Bézierovy křivky mohou být některé vrcholy řídícího polygonu i nevlastníbody (β i = 0).48


7.2.1 Vlastnosti racionálních Bézierových křivekRacionální Bézierova křivka se dotýká první a poslední strany řídicího polygonu.Velmi speciální vlastnosti dostaneme, je-li některá z vah β i < 0.Předpokládejme, že β i > 0, i = 1, . . . , n, pak platí:• racionální Bézierova křivka leží v konvexním obalu řídicího polygonu,• zachována je podmínka “variation-dimishing-property”, tj. počet průsečíků libovolné přímkys rovinnou racionální Bézierovou křivkou je nejvýše roven počtu průsečíků této přímkys řídicím polygonem.7.2.2 Geometrický význam váhy boduUvažujme racionální Bézierovu křivku ve tvaru (7.1). Nechť pro bod V k se jeho váha změníz hodnoty β k na ˆβ k = β k + ∆ k . Pro ostatní body platí ˆβ i = β i .PlatíˆP (t) =∑ ni=1 ˆβ i V i B n i (t)∑ ni=1 ˆβ i B n i (t) =∑ ni=1 β iV i B n i (t) + ∆ k V k B n k (t)∑ ni=1 β iB n i (t) + ∆ kB n k (t)Stanovíme rozdíl ˆP (t) − P (t). Po rozšíření vztahu výrazemn∑ˆβ i Bi n (t)i=1obdržíme(P (t) − ˆP (t))n∑ˆβ i Bi n (t) == [∑ ni=1 β iBi n (t)][ ∑ ni=1 β iV i Bi n (t)] + [ ∑ ni=1 β iV i Bi n (t)]∆ k Bk ∑ n(t)ni=1 β iBi n(t)i=1− [∑ ni=1 β iBi n (t)][ ∑ ni=1 β iV i Bi n (t)] + [ ∑ ni=1 β iBi n (t)]∆ k V k Bk ∑ n(t)ni=1 β iBi n(t) == P (t)∆ k B n k (t) − V k ∆ k B n k (t) = ∆ k B n k (t)(P (t) − V k )Tedy změna polohy bodu křivky pro parametr t se děje ve směru vektoru P (t) − V k .7.2.3 Kuželosečky jako racionální Bézierovy křivkyUvažujme racionální Bézierovu křivku pro n = 3, tj.P (t) = β 1V 1 B 3 1(t) + β 2 V 2 B 3 2(t) + β 3 V 3 B 3 3(t)β 1 B 3 1(t) + β 2 B 3 2(t) + β 3 B 3 3(t)49


Položíme β 1 = β 3 = 1. Nechť Q = 1 2 (V 1 + V 3 ). Pro t = 1 2 platíP ( 1 2 ) = V 1 1 4 + β 2V 212 + V 3 1 414 + β 2 1 2 + 1 4= 11 + β 2Q + β 21 + β 2V 2 .Z projektivních vlastností kuželoseček plyne:• je-li β 2 = 1, jedná se o parabolu,• je-li β 2 < 1, jedná se o elipsu,• je-li β 2 > 1, jedná se o hyperbolu.Oblouk kružnice s krajními body V 1 a V 3 lze určit jako racionální Bézierovu křivku, volímeliV 2 v průsečíku tečen oblouku v bodech V 1 a V 3 a je-li β 1 = β 3 = 1 a β 2 = cos α, kde α jepoloviční středový úhel oblouku.Pro půlkružnici lze volit (v homogenní rovinných souřadnicích) V 1 = (−r, 0, 1), V 2 =(0, r, 0), V 3 = (r, 0, 1).7.2.4 NURBSPodobně jako v případě Bézierových křivek je i pro B-spline křivky možné definovat racionálníspecializaci, tj. NURBS (non-uniform rational B-spline), a tím rozšířit další možnosti popisutvarově složitých objektů.Pro některé křivky a plochy, které jsou často používány v CAD systémech, uvedeme jejichpopis ve smyslu NURBS teorie.Lomená čáraOtevřenou lomenou čáru lze popsat vždy jako NURBS (dokonce jako B-spline). Stačí volitdanou lomenou čáru jako řídící polygon, k = 2, váhy β i = 1 a vektor parametrizaceT = (0, 0, 1, . . . , j − 2, j − 1, j − 1).Pro uzavřenou lomenou čáru se změní vektor parametrizace: T = (0, 1, . . . , j − 1, j).=Kružnice a elipsaPomocí NURBS můžeme popsat celou kružnici (střed v počátku, poloměr r a kružnice ležív rovině xy: volíme (v homogenních souřadnicích)b 0 = (r, 0, 0, 1), b 1 = (0, r, 0, 0), b 2 = (−r, 0, 0, 1), b 3 = (0, −r, 0, 0)50


a k = 2, T = (0, 0, 1, 2, 2).Afinní transformací snadno získáme vyjádření elipsy (poloosy a, b, osy elipsy leží na osáchx a y):b 0 = (a, 0, 0, 1), b 1 = (0, b, 0, 0), b 2 = (−a, 0, 0, 1), b 3 = (0, −b, 0, 0)a k = 2, T = (0, 1, 1, 2, 2).Pro kružnici a elipsu i pro jejich oblouky lze odvodit i vyjádření, v němž není použitonevlastních bodů.7.3 Cvičení7.1 Pro řídící polygon o třech vrcholech načrtněte, jak se při změně váhy protředního bodumění výsledná racionální Bézierova křivka! Pojmenujte jednotlivé křivky!7.4 Kontrolní otázky7.1 Vysvětlete jednotlivé složky zkratky NURBS!7.2 Jaké základní přednosti mají NURBS křivky?7.3 Generování NURBS křivek je projektivně invariantní. Uveďte aplikaci této vlastnosti!51


Kapitola 8Plochy tenzorového součinu určené sítíbodůPředpokládáme, že je dána síť V m × n bodů s polohovými vektory V 1,1 , V 1,2 , . . . , V m,n , tj.⎡⎤V 1,1 V 1,2 . . . V 1,nV = ⎢ V 2,1 V 2,2 . . . V 2,n⎥⎣ . . . . . . . . . . . . ⎦V m,1 V m,2 . . . V m,nPředpokládáme, že se jedná o navzájem různé body.8.1 Bézierovy plochyV roce 1970 se začal ve francouzské automobilce Renault používat systém UNISURF, kterýk <strong>modelování</strong> tvaru karosérií využil ploch určených řídící sítí podle návrhu P. Béziera.Bézierovu plochu definujeme předpisemP (u, v) = B m (u)VB T n(v), u ∈ 〈0, 1〉, v ∈ 〈0, 1〉,kdeB k (s) = [B 1,k (s), B 2,k (s), . . . , B k,k (s)],tj. B k je vektorová funkce, která parametru s přiřazuje vektor, jehož složkami jsou hodnotyjednotlivých Bernsteinových polynomů řádu k.V explicitním tvaru je rovnici Bézierovy plochy možné napsat ve tvaruP (u, v) =m∑ n∑V i,j Bi m (u)Bj n (v).i=1 j=1Věta 8.1 Bézierova plocha prochází rohovými body sítě a okrajové křivky plochy jsou Bézierovýmikřivkami pro okraje sítě. Tečná rovina v bodě V 1,1 sítě je určena body V 1,1 , V 1,2 , V 2,1 .Podobně pro další rohové body.52


Důkaz: Tvrzení je snadným důsledkem vlastností Bernsteinových polynomů (k > 1):B k i (0) = 0 pro i > 1 a B 1,k = 1.Tvrzení o tečné rovině je důsledkem odpovídající vlastnosti Bézierových křivek a definice tečnéroviny.Uvažujme případ m = n = 2. Bézierova plocha je pak hyperbolickým paraboloidem a plátlze vytvořit jako přímkovou plochu a jako bilineární Coonsův plát. Rovnice plochy je tvaru:[ ] [ ]VP (u, v) = [1 − u, u] 1,1 V 1,2 1 − v.V 2,2 vV 2,18.1.1 Přímý algoritmus de CasteljauPředpokládáme, že m = n.Jak víme pro k > 2 a 1 < i < n platí rekurentní formuleBi k (s) = (1 − s)B k−1i (s) + s B k−1i−1 (s),kde B1(s) q = (1 − s) q−1 a Bq(s) q = s q−1 pro q = 2, . . . , k − 1.Přímý algoritmus de Casteljau je založen na postupném generování bodů hyperbolickýchparaboloidů. Základní rekurentní formule je tvaru:[ VV r+1ri,ji,j = [1 − u, u]V r i+1,jkde r = 1, . . . , n a i, j = 1, . . . , n − r a V 1 i,j = V i,j .V r i,j+1V r i+1,j+1] [ 1 − vvPokud je m ≠ n, provedeme podle předchozího postupu min(m, n) kroků. Další iterace serealizují jednorozměrným algoritmem de Casteljau.8.1.2 Aplikace algoritmu de Casteljau po křivkáchNa základě algoritmu de Casteljau pro křivky lze formulovat algoritmus de Casteljau pro konstrukcibodu plochy, který odpovídá daným hodnotám parametrů u 0 a v 0 .Algoritmus de Casteljau aplikujeme nejprve na sloupce matice V, čímž vznikne polygondaný body n V 1 , . . . , n V m , na který pak opět aplikujeme algoritmus de Casteljau. Výsledkem jeurčení bodu o polohovém vektoru P (u 0 , v 0 ). Dá se dokázat, že lze v matici U použít algoritmusde Casteljau na řádky a po provedení tohoto algoritmu na získané body dojdeme ke stejnémukonečnému výsledku. Důkaz plyne z uplatnění distributivního zákona pro reálná čísla.8.1.3 Vlastnosti Bézierových plochSnadno ze samotného textu věty plyne],53


Věta 8.2 Nechť T je afinní transformace. PakT [P (u, v)] =m∑ n∑T [V i,j ]Bi m (u)Bj n (v),i=1 j=1tj. výpočet bodu Bézierovy plochy je afinně invariantní.Věta 8.3 Bézierova plocha splňuje podmínku konvexního obalu, tj. pro (u, v) ∈ 〈0, 1〉 × 〈0, 1〉leží bod P (u, v) v nejmenší konvexní množině obsahující body V 1,1 , V 1,2 , . . . , V m,n .Důkaz: Stačí dokázat, žem∑i=1n∑Bi m (u)Bj n (v) = 1,j=1což snadno plyne uplatněním distributivního zákona:m∑ n∑Bi m (u)Bj n (v) =i=1 j=1m∑n∑Bi m (u)( Bj n (v)) =i=1j=1m∑Bi m (u) = 1,i=1Pro plochy však neplatí “variation dimishing property”, tj. počet průsečíků obecné přímkys Bézierovou plochou není omezen počtem průsečíků této přímky s řídicím polygonem.Pro zvýšení počtu vrcholů řídicí sítě se použije podobné metody jako u Bézierových křivek.Lze opakovaně použít algoritmus pro křivky nebo vyjít z analogie přímého algoritmu deCasteljau.Věta 8.4 Uvažujme Bézierovu plochu B, která je určena sítí V o m × n bodech a Bézierovuplochu B ∗ určenou sítí V ∗ o (m + 1) × (n + 1) bodech.[ i − 1V ∗ i,j =m , 1 − i − 1 ] [ ] [ V i−1,j−1 V j−1]i−1,j nm V i,j−1 V i,j 1 − j−1npro i = 1, . . . , m + 1 a j = 1, . . . , n + 1, kde vektory s indexy mimo daný rozsah definujeme jakonulové (např. V 0,0 ap.)Pak Bézierovy plochy B a B ∗ splývají.Určíme geometrický význam twistu Bézierova plátu. Výpočet provedeme jen pro bod u =0, v = 0. Platí∂ 2∂u ∂v P (0, 0) = ∂ n∑(m − 1)(V 2,j − V 1,j )Bj n (u) |u=0 =∂vOznačme R 2,2 splňující vztahj=1= (m − 1)(n − 1)[(V 2,2 − V 2,1 ) − (V 1,2 − V 1,1 )].R 2,2 − V 2,1 = V 1,2 − V 1,1 ,54


tj. takto zadané body tvoří rovnoběžník v tečné rovině Bézierovy plochy. Po dosazení do vztahupro twist vypočteme:∂ 2∂u ∂v P (0, 0) = b(m − 1)(n − 1)(V 2,2 − R 2,2 ),tj. twist je “mírou odchylky” řídicí sítě od “rovnoběžníkových segmentů”.Věta 8.5 Pro twist Bézierovy plochy platíkde∂ 2∂u ∂v P (0, 0) = (m − 1)(n − 1)(V 2,2 − R 2,2 ),R 2,2 − V 2,1 = V 1,2 − V 1,1 .Podobné vztahy platí twisty v dalších rohových bodech sítě.8.1.4 NapojováníPodobně jako u křivek lze i pro plochy formulovat podmínky pro plátování. Předpokládáme, žeobě plochy mají síť se stejným počtem vrcholů buď v řádcích nebo ve sloupcích (podle toho,podle které křivky se provádí napojení). Tento předpoklad lze splnit pomocí algoritmu uvedenéhov předchozím odstavci.Spojitost třídy C 0 se zajistí tím, že obě sítě mají společnou hraniční lomenou čáru.Spojitost třídy C 1 se definuje pomocí spojitosti parametrických křivek. Proto použijemepodmínek uvedených v kapitole věnované Bézierovým křivkám.8.1.5 Popis bikubických spline plochZákladním segmentem spline plochy je šestnáctivektorový Coonsův plát. Tento plát lze popsatjako Bézierovu bikubickou plochu (m = 4, n = 4). Určení sítě se provede na základě následují-55


cích vztahů:V 1,1 = P 0,0V 1,4 = P 0,1V 4,1 = P 1,0V 4,4 = P 1,13(V 1,2 − V 1,1 ) = P v 0,03(V 1,4 − V 1,3 ) = P v 0,13(V 4,2 − V 4,1 ) = P v 1,03(V 4,4 − V 4,3 ) = P v 1,13(V 2,1 − V 1,1 ) = P u 0,03(V 2,4 − V 1,4 ) = P u 0,13(V 4,1 − V 3,1 ) = P u 1,03(V 4,4 − V 3,4 ) = P u 1,19[(V 2,2 − V 2,1 ) − (V 1,2 − V 1,1 )] = P uv0,09[(V 2,4 − V 2,3 ) − (V 1,4 − V 1,3 )] = P uv0,19[(V 4,2 − V 4,1 ) − (V 3,2 − V 3,1 )] = P uv1,09[(V 4,4 − V 4,3 ) − (V 3,4 − V 3,3 )] = P uv1,18.2 B-spline plochy8.2.1 Coonsova B-spline plochaNejprve uvedeme případ speciální B-spline plochy - Coonsovy B-spline plochy. Plocha pro danoucharakteristickou síť V je určována po částech (tím na rozdíl od Bézierových ploch stupeň plochynezávisí na počtu uzlů sítě) tímto předpisemi,j P (u, w) = 1 36 C(u − i)i,j V C T (w − j),kde u ∈ 〈i, i + 1〉, w ∈ 〈j, j + 1〉, C(t) = [C 1 (t), C 2 (t), C 3 (t), C 4 (t)] je vektorová funkce, jejížsložky jsou dány předpisemC 1 (t) = −t 3 + 3t 2 − 3t + 1,C 2 (t) = 3t 3 − 6t 2 + 4,C 3 (t) = −3t 3 + 3t 2 + 3t + 1,C 4 (t) = t 3 .a i,j V je dílčí matice rozměru 4 × 4 v matici V, tj.⎡i,j V =⎢⎣⎤V i,j V i,j+1 V i,j+2 V i,j+3V i+1,j V i+1,j+1 V i+1,j+2 V i+1,j+3⎥V i+2,j V i+2,j+1 V i+2,j+2 V i+2,j+3⎦V i+3,j V i+3,j+1 V i+3,j+2 V i+3,j+3Pro plát Coonsovy B-spline plochy určíme její okrajové křivky. Např. pro u = i stanovíme,že okrajová křivka je obloukem B-spline křivky pro řídící polygon s vrcholy Q k , k = j, . . . , j + 3v antitěžištích trojúhelníků V i,j V i+1,j V i+2,j .56


Plocha, která je vytvořena jako B-spline je uniformní spline plochou. Uvedeme rovnice,pomocí nichž lze ke spline ploše určit její řídicí síť. Pro jednoduchost popisujeme jen jeden pláta používáme indexů 1 až 4 pro vrcholy sítě. Pro šestnáctivektorový plát, který je základnímplátem splinu máme:136 1,1 + 4V 2,1 + V 3,1 ) + 4(V 1,2 + 4V 2,2 + V 3,2 )++(V 1,3 + 4V 2,3 + V 3,3 )] = P 0,0136 1,2 + 4V 2,2 + V 3,2 ) + 4(V 1,3 + 4V 2,3 + V 3,3 )++(V 1,4 + 4V 2,4 + V 3,4 )] = P 0,1136 2,1 + 4V 3,1 + V 4,1 ) + 4(V 2,2 + 4V 3,2 + V 4,2 )++(V 2,3 + 4V 3,3 + V 4,3 )] = P 1,0136 2,2 + 4V 3,2 + V 4,2 ) + 4(V 2,3 + 4V 3,3 + V 4,3 )++(V 2,4 + 4V 3,4 + V 4,4 )] = P 1,1112 1,3 − V 1,1 ) + 4(V 2,3 − V 2,1 ) + (V 3,3 − V 3,1 )] = P v 0,0112 1,4 − V 1,2 ) + 4(V 2,4 − V 2,2 ) + (V 3,4 − V 3,2 )] = P v 0,1112 2,3 − V 2,1 ) + 4(V 3,3 − V 3,1 ) + (V 4,3 − V 4,1 )] = P v 1,0112 2,4 − V 2,2 ) + 4(V 3,4 − V 3,2 ) + (V 4,4 − V 4,2 )] = P v 1,1112 3,1 − V 1,1 ) + 4(V 3,2 − V 1,2 ) + (V 3,3 − V 1,3 )] = P u 0,0112 3,2 − V 1,2 ) + 4(V 3,3 − V 1,3 ) + (V 3,4 − V 1,4 )] = P u 0,1112 4,1 − V 2,1 ) + 4(V 4,2 − V 2,2 ) + (V 4,3 − V 2,3 )] = P u 1,0112 4,2 − V 2,2 ) + 4(V 4,3 − V 2,3 ) + (V 4,4 − V 2,4 )] = P u 1,114 3,3 − V 3,1 ) − (V 1,3 − V 1,1 )] = P uv0,014 3,4 − V 3,2 ) − (V 1,4 − V 1,2 )] = P uv0,114 4,3 − V 4,1 ) − (V 2,3 − V 2,1 )] = P uv1,014 4,4 − V 4,2 ) − (V 2,4 − V 2,2 )] = P uv1,18.2.2 Obecná B-spline plochaPro obecnou B-spline plochu uvedeme explicitní vyjádření:P (u, v) =m∑ n∑V i,j Ni k (u)Nj(v)li=1 j=1Tato plocha je určena:• řídicí sítí m × n bodů,• řádem k polynomů baze pro parametr u a řádem l polynomů baze pro parametr v,• vektrory parametrizace pro parametr u a v.Věta 8.6 Hraničními křivkami B-spline plochy jsou B-spline křivky pro hraniční lomenou čáruřídicí sítě (a pro daný vektor parametrizace i řád křivky).Věta 8.7 Body B-spline plochy mohou být generovány de Boorovým algoritmem (uplatněnýmpo křivkách).57


Věta 8.8 Pro B-spline plochy platí podmínka konvexního obalu a lze tuto podmínku lokalizovatna podmnožinu řídicí sítě.Obecné B-spline plochy lze použít k výpočtu neuniformní spline plochy zvoleného stupně,příp. i k určení aproximující spline plochy pro danou množinu bodů. Uvedeme postup výpočtupro případ interpolace:1. Jsou dány body P i,j , kterými má spline plocha procházet.2. Zvolíme či jistým algoritmem vypočteme řád k a l a vektory parametrizace. Pro konstrukcivektoru parametrizace se použije např. chordálového algoritmu, ale vektor parametrizaceje společný pro všechny v, resp. u křivky. Dané body P i,j odpovídají hodnotám parametru(u i , v j ), ale tyto hodnoty obecně nemusí být obsaženy ve vektoru parametrizace.3. Pro hledané vrcholy V i,j řídicí sítě B-spline plochy vytvoříme odpovídající soustavu vektorovýchrovnicm∑ n∑P (u r , v s ) = V i,j Ni k (u r )Nj(v l s ) = P r,s .i=1j=1Tato soustava má matici s blokovou strukturou. Při nevhodné parametrizaci však některébloky mohou být singulární. V takovém případě se musí měnit parametrizace plochy.V případě aproximace pomocí obecné B-spline plochy se často používá metody nejmenšíchčtverců. Změnami parametrů se může realizovat ortogonalizační proces, tj. dosáhnout toho, abyvektor chyby byl normálovým vektorem výsledné plochy. Nejsložitější částí algoritmu je určeníparametrizace, neboť se jí sleduje odstranění singularit v blokové matici i ortogonalita vektoruchyby.Jedna z metod pro určení hodnot parametrů (u r , v s ) pro daný bod je založana na následujícímpostupu:1. Určíme okrajové křivky hledané plochy (pomocí interpolace nebo aproximace).2. Pro okrajové křivky zkonstruujeme Coonsův plát (bilineární nebo bikubický).3. Hodnoty parametru (u s , v r ) stanovíme jako hodnoty parametrů na použité Coonsově plošetak, že na této ploše vyhledáme bod, který má od daného bodu nejmenší vzdálenost.8.3 Racionální specializacePostup, který jsme použili pro vytvoření racionálních Bézierových a B-spline křivek přenesemesnadno i na plochy. Všechny body uvažujeme v homogenních souřadnicích a čtvrtá souřadnicemá význam váhy β i,j bodu řídicí sítě.Podstatnou vlastností racionální Bézierových a NURBS ploch je, že dovolují přesný popiskvadrik a dalších ploch často používaných v technické praxi.Pomocí NURBS ploch lze popsat:58


• Translační plochy, u nichž je tvořící křivkou NURBS křivka a je zadán vektor posunutíh.• Rotační plochy dané meridiánem, který je popsán jako NURBS.• Přechodovou plochu mezi dvěma profily, tj. pro dvě NURBS křivky popsat přímkovouplochu obsahující dané křivky. Zde je nutné nejprve dosáhnout toho, aby obě zadávajícíkřivky byly vyjádřeny pomocí polygonu se stejným počtem vrcholů a aby mělystejné vektory parametrizace.• Obecný ”sweep”, tj. plochu, který vzniká ”vedením” měnící se křivky po prostorovékřivce. Vkládané profily jsou umísťovány do normálové roviny prostorové křivky.Příklad 8.1 Rotační válcovou plochu o poloměru r a výšce v lze popsat pomocí racionálníBézierovy plochy v homogenních souřadnicích.Řešení: Lze postupovat takto:P (u, v) =3∑ 2∑Bi 3 (u)Bj 2 (v)V i,j ,i=1 j=1kdeV 1,1 = (r, 0, 0, 1), V 2,1 = (0, r, 0, 0), V 3,1 = (−r, 0, 0, 1),V 1,2 = (r, 0, v, 1), V 2,2 = (0, r, v, 0), V 3,2 = (−r, 0, v, 1).Takto popíšeme polovinu pláště daného rotačního válce. Pro popis celého pláště by bylovhodné použít NURBS ploch.□Příklad 8.2 Pro část („čtvrtinu) anuloidu – osou je osa z, poloměr meridální kružnice je ra poloměr kružnice, na níž leží středy meridiánů, je a – můžeme použít racionální Bézierovuplochu řádu 3 krát 3.Řešení:P (u, v) =3∑i=13∑Bi 3 (u)Bj 3 (v)V i,j ,j=1kdeV 1,1 = (0, −a, −r, 1), V 2,1 = (0, −r, 0, 0), V 3,1 = (0, −a, r, 1),V 1,2 = (a, 0, 0, 0), V 2,2 = (r, 0, 0, 0), V 3,2 = (a, 0, 0, 0), V 1,3 = (0, a, −r, 1), V 2,3 = (0, r, 0, 0),V 3,3 = (0, a, r, 0, 1).Z tohoto vztahu lze pro a = 0 obdržet vyjádření poloviny kulové plochy ve tvaru racionálníBézierovy plochy.□8.4 Cvičení8.1 Pro síť 3×4 vyznačte pomocí algoritmu de Casteljau určení bodu Bézierovy plochy, kterýodpovídá parametrům u = 0, 25 a v = 0, 5.59


8.5 Kontrolní otázky8.1 Uveďte základní rozdíly (z hlediska zadání i aplikací) mezi Bézierovým, B-spline a NURBSplochami!8.2 Formulujte podmínku konvexního obalu pro Bézierovy a B-spline plochy!60


Kapitola 9Coonsovy plochy – plochy určenéokrajem9.1 Přechodová plochaPokud je pro plochu dán jeden systém křivek, můžeme interpolační plochu konstruovat počástech (tyto části budeme nazývat pláty). Plát je určen dvěma okrajovými křivkami a i (v) aa i+1 (v), v ∈ I v .Pokud by pro tyto křivky byly intervaly, v nichž leží hodnoty parametru, různé, provedemetriviální lineární transformaci parametru jedné z křivek tak, aby obě křivky měly parametr zestejného intervalu.Nejjednodušeji plát zkonstruujeme, spojíme-li úsečkou body o polohových vektorech a i (v k )a a i+1 (v k ), v k ∈ I v a v k je konstantní. Rovnice plátu je paki P (u, v) = a i (v)(1 − u) + a i+1 (v)u, v ∈ I v , u ∈ 〈0, 1〉.Je zřejmé, že pro systém křivek a i (v) takto můžeme pomocí jednotlivých plátů složit výslednouplochu. “Kvalita” této interpolační plochy (může jít o povrch nástroje, formy apod.)je velmi nízká. Pláty se podle společné křivky nedotýkají. Říkáme, že není zajištěno plátování,tj. hladké napojení sousedních plátů na sebe. V technické praxi se však s touto interpolačníplochou setkáme např. při interpolaci plochy dané velkým počtem křivek a i (v). Výhodou totižje, že parametrické křivky pro v = konst jsou po částech tvořeny úsečkami, což je příznivé propřípravu NC programů pro frézování apod.9.2 Bilineární Coonsův plátDále se budeme zabývat případem interpolace, kdy jsou známy dva systémy křivek plochy, totižparametrické křivky jedné a druhé soustavy. Uvažujme jeden plát takové plochy a předpokládejmepro jednoduchost, že tento plát má mít parametry u ∈ 〈0, 1〉 a v ∈ 〈0, 1〉. Obecný případpřevedeme na tento tvar vhodnými transformacemi parametru. Uvažujme tedy plát plochy ur-61


čený okrajem (čtyřmi oblouky křivek) pro parametry z jednotkového čtverce.Protějšími stranami okraje plátu jsou křivky a 1 (v) a a 2 (v), resp. b 1 (u) a b 2 (u).Mapovací maticí plátu nazveme matici⎡P 0,0 a 1 (v) P 0,1⎤P 1,0 a 2 (v) P 1,1M = ⎣ b 1 (u) P (u, v) b 2 (u) ⎦ ,kde P (u, v) je polohový vektor bodu plátu.Bilineární Coonsův plát je plát, pro který je použito lineárních bázových funkcí (lineárníhotváření). Rovnice tohoto plátu je tvaru⎡ ⎤1 − v[1 − u, −1, u]M ⎣ −1v⎦ = o,kde parametry u a v jsou z jednotkového čtverce. Jestliže vytváříme plát nad jednotkovýmčtvercem v rovině xy, můžeme vektory v mapovací matici nahradit pouze jejich třetí složkou amísto parametrů u a v použít přímo proměnných x a y.Snadno dokážeme:Věta 9.1 Jsou-li protější dvě strany okraje bilineárního plátu úsečkami, je výsledná plochapřímkovou plochou.Důkaz: Tj. je-li např.b 1 (u) = (1 − u)P 0,0 + uP 1,0 , b 2 (u) = (1 − u)P 0,1 + uP 1,1 ,pak parametrické křivky plátu pro v = konst jsou rovněž úsečkami. Rovnice plátu je v tomtopřípadě tvaruP (u, v) = (1 − u)a 1 (v) + ua 2 (v).9.3 Bikubický Coonsův plátObecnější, bikubický Coonsův plát je určen stejně jako plát bilineární svým okrajem. Jehorovnice je⎡ ⎤F 0 (v)[F 0 (u), −1, F 1 (u)]M ⎣ −1F 1 (v)⎦ = o,kde funkce F 0 a F 1 byly použity v souvislosti s Fergusonovými křivkami:F 0 (t) = 2t 3 − 3t 2 + 1,F 1 (t) = −2t 3 + 3t 2 ,62


Snadno dokážeme, že tato plocha obsahuje daný okraj. Zvolme např. u = 0. Vyjde⎡P 0,0 a 1 (v) P 0,1⎤ ⎡ ⎤F 0 (v)P 1,0 a 2 (v) P 1,1 F 1 (v)[1, −1, 0] ⎣ b 1 (0) P (0, v) b 2 (0) ⎦ ⎣ −1 ⎦ = otj. P (0, v) = a 1 (v). Podobně dokážeme, že i ostatní dané křivky leží na plátu.Pro odvození dalších vlastností použijeme explicitní vektorovou rovnici plochy bikubickéhoCoonsova plátu:P (u, v) = b 1 (u)F 0 (v) + b 2 (u)F 1 (v) + a 1 (v)F 0 (u) + a 2 (v)F 1 (u)+− ∑ 1i=0∑ 1j=0 P i,jF i (u)F j (v)Věta 9.2 Twisty v rozích bikubického Coonsova plátu jsou nulové.Důkaz: Twist P uv (0, 0) = o díky platnosti rovnosti F ′ 0(0) = F ′ 1(0) = 0. Podobně se ukáže, žei v dalších rozích plátu jsou twisty nulové, neboť F ′ 0(1) = F ′ 1(1) = 0.Věta 9.3 Vektory příčných derivací podél okrajových křivek jsou lineární kombinací tečnýchvektorů okrajových křivek v rozích plátu. Např.P u (0, v) = α 1 b ′ 1(0) + α 2 b ′ 2(0).Důkaz: Platí F ′ 0(0) = F ′ 1(0) = 0, F ′ 0(1) = F ′ 1(1) = 0. Z explicitní rovnice bikubického Coonsovaplátu snadno vypočteme∂∂u P (0, v) = P u (0, v) = b ′ 1(0)F 0 (v) + b ′ 2(0)F 1 (v).Podobně lze provést výpočet pro další okrajové křivky.Plátováním rozumíme vlastnost interpolační metody spočívající v přenesení třídy spojitosti(zpravidla C 1 nebo GC 1 ) “opěrného systému křivek” na další parametrické křivky.Uvažujme dva bikubické Coonsovy pláty:• plát 1 P (u, v) s okrajovými křivkami a 1 (v), b 1 (u), a 2 (v), b 2 (v), u ∈ 〈0, 1〉, v ∈ 〈0, 1〉,• plát 2 P (u, v) s okrajovými křivkami a 2 (v), b 3 (w), a 3 (v), b 4 (w), w ∈ 〈0, 1〉, w ∈ 〈0, 1〉,• okrajové křivky složené plochy jsou třídy C 1 , tj.b ′ 1(1) = b ′ 3(0), b ′ 2(1) = b ′ 4(0).Podle věty 9.3 mají oba pláty podél společné křivky a 2 (v) společnou tečnou rovinu apodle důkazu věty 9.3 je zřejmé, že navíc každá parametrická křivka v = konst je třídyC 1 . Můžeme tedy formulovat větu:Věta 9.4 Bikubické Coonsovy pláty zajišťují plátování.63


9.4 Dvanáctivektorový a šestnáctivektorový plátV odst. ?? jsme poznali plát, který byl určen šestnácti vektory a nazývá se proto šestnáctivektorovýplát. Pro jednotlivý plát se uvažuje parametrizace na čtverci < 0, 1 >×< 0, 1 >.Jestliže jsou vektory twistů nulové, je tento plát nazýván dvanáctivektorový nebo také Fergusonůvplát. Fergusonův plát je tudíž určen:• polohovými vektory P 0,0 , P 1,0 , P 1,1 , P 0,1 rohových bodů plátu,• tečnými vektory P u 0,0, P u 1,0, P u 1,1, P u 0,1 okrajových v křivek,• tečnými vektory P v 0,0, P v 1,0, P v 1,1, P v 0,1 okrajových u křivek.Věta 9.5 Okrajovými křivkami dvanáctivektorového plátu jsou Fergusonovy kubiky.Důkaz:Např. pro u = 0 jeP (u, v) = [F 0 (u), F 1 (u), F 2 (u), F 3 (u)].⎡⎤ ⎡ ⎤P 0,0 P 0,1 P v 0,0 P v 0,1 F 0 (v)⎢ P 1,0 P 1,1 P v 1,0 P v 1,1 ⎥ ⎢ F 1 (v)⎥⎣ P u 0,0 P u 0,1 o o ⎦ ⎣ F 2 (v) ⎦ ,P u 1,0 P u 1,1 o o F 3 (v)⎡P (0, v) = [1, 0, 0, 0]. ⎢⎣Podobně i pro další tři okrajové křivky.P 0,0 P 0,1 P v 0,0 P v 0,1P 1,0 P 1,1 P v 1,0 P v 1,1P u 0,0 P u 0,1 o oP u 1,0 P u 1,1 o o⎤ ⎡⎥ ⎢⎦ ⎣F 0 (v)F 1 (v)F 2 (v)F 3 (v)= P 0,0 F 0 (v) + P 0,1 F 1 (v) + P v 0,0F 2 (v) + P v 0,1F 3 (v).⎤⎥⎦ =Věta 9.6 Dvanáctivektorový plát splývá s Coonsovým bikubickým plátem, jehož okrajovýmikřivkami jsou Fergusonovy kubiky dané zadanými body a tečnými vektory dvanáctivektorovéhoplátu.Důkaz: Do rovnice bikubického Coonsova plátu dosadíme za okrajové křivky příslušné rovniceFergusonových křivek a po jistých algebraických úpravách obdržíme rovnici dvanáctivektorovéhoplátu.64


9.5 Obecný Coonsův plátUvedli jsme, že bikubický Coonsův plát zajišťuje plátování. Problémem je, má-li být hladcenapojen bikubický plát na plochu, která není popsána jako bikubický plát (např. na plochupopsanou analyticky).Popis obecného Coonsova plátu požaduje zadání:• okrajových křivek plátu a 1 (v), a 2 (v), b 1 (u), b 2 (u),• průběhu příčné derivace P u (0, v), P u (1, v), P v (u, 0), P v (u, 1) podél hraničních křivekplátu• twistů v rozích plátu P uv0,0, P uv0,1, P uv1,0, P uv1,1.Je třeba upozornit, že uvedené podmínky nelze volit zcela libovolně. Splněny musí býtpodmínky souhlasu:• a 1 (0) = b 1 (0), b 1 (1) = a 2 (0), a 2 (1) = b 2 (1), a 2 (0) = b 1 (1),• a ′ 1(0) = P v (0, 0), a ′ 1(1) = P v (0, 1), b ′ 1(0) = P u (0, 0), b ′ 1(1) = P u (0, 1), a ′ 2(0) = P v (1, 0),a ′ 2(1) = P v (1, 1), b ′ 2(0) = P u (1, 0), b ′ 2(1) = P u (1, 1),• ∂ P v (0, 0) = ∂ P u (0, 0) = P uv ∂(0, 0), P v (0, 1) = ∂ P u (0, 1) = P uv ∂(0, 1), P v (1, 0) =∂u ∂v ∂u ∂v ∂u∂P u (1, 0) = P uv ∂(1, 0), P v (1, 1) = ∂ P u (1, 1) = P uv (1, 1),∂v ∂u ∂vObecný Coonsův plát lze popsat rovnicí⎡⎢⎣[F 0 (u), −1, F 1 (u), F 2 (u), F 3 (u)].P 0,0 a 1 (v) P 0,1 P v (0, 0) P v (0, 1)b 1 (u) P (u, v) b 1 (u) P v (u, 0) P v (u, 1)P 1,0 a 2 (v) P 1,1 P v (1, 0) P v (1, 1)P u 0,0 P u (0, v) P u (0, 1) P uv (0, 0) P uv (0, 1)P u (0, 0) P u (1, v) P u (1, 1) P uv (1, 0) P uv (1, 1)⎤ ⎡⎥ ⎢⎦ ⎣F 0 (v)−1F 1 (v)F 2 (v)F 3 (v)⎤⎥⎦ = oFunkce F i jsou definovány předpisem odvozeným v odstavci o Fergusonových křivkách, tj.9.6 CvičeníF 0 (t) = 2t 3 − 3t 2 + 1,F 1 (t) = −2t 3 + 3t 2 ,F 2 (t) = t 3 − 2t 2 + t,F 3 (t) = t 3 − t 2 .9.1 Sestavte rovnici přechodové plochy mezi úsečkami AB a CD, kdeA[0, 0, 0], B[1, 0, 0], C[0, 1, 0], D[1, 2, 1]!9.2 Urcete rovnice bikubického Coonsova plátu, který zajistí prechod mezi dvema pulkružnicemi(r = 1, stred v pocátku). Jedna leží v rovine xy v její polorovine y ≥ 0, druhá vrovine xz v její polorovine z ≥ 0!65


9.7 Kontrolní otázky9.1 Vysvětlete pojem plátování!9.2 Pro jednotlivé typy Coonsových plátů uveďte, čím jsou určeny!66


Kapitola 10Shrnutí poznatků o křivkách a plochách10.1 Shrnutí poznatků o křivkách10.1.1 Fergusonova kubikaDáno:• body P i a P i+1• tečné vektory P ′ i a P ′ i+1• odpovídají hodnoty t i a t i+1 parametru.Výpočet:P (t) = H 0 (t − t i )P i + H 1 (t − t i )P i+1 + H 2 (t − t i )P ′ i + H 3 (t − t i )P ′ i+1,kde H i (s) jsou polynomy třetího stupně.H 0 (s) = 2ik 3 s3 − 3ik 2 s2 + 1,H 1 (s) = − 2ik 3 s3 + 3ik 2 s2 ,H 2 (s) = 1ik 2 s3 − 2ik s2 + s,H 3 (s) = 1ik 2 s3 − 1ik s2 .i k = t i+1 − t i .Pro uniformní parametrizaci t i = 0, t i+1 = 1F 0 (t) = 2t 3 − 3t 2 + 1,F 1 (t) = −2t 3 + 3t 2 ,F 2 (t) = t 3 − 2t 2 + t,F 3 (t) = t 3 − t 2 .Význam:Základ pro spline a pro další objekty (Coonsovy plochy).67


10.1.2 Interpolační spline křivkyKlasický interpolační splineDáno:• stupeň (nejčastěji jde o kubický spline)• opěrné body• okrajové podmínky (nebo podmínka, že jde o uzavřený spline)• parametrizace (uniformní nebo neuniformní)Výpočet:Soustava s pásovou maticí pro výpočet tečných vektorů. Pak v kubickém případě použití Fergusonovýchkubik.Použití:V běžných grafických systémech. Možnost popisu pomocí B-spline. Kubický spline minimalizujeintegrála odpovídá chování velmi tenké laťky.Spline pod napětím∫ 10|P ”(t)| 2 dtPodobně jako pro klasický spline, ale navíc je volitelné napětí, které lze lokalizovat i pro jednotlivéoblouky. Minimalizuje se integrál∫ 10∫ 1|P ”(t)| 2 dt + p 2 |P ′ (t)| 2 dt.Minimalizujeme tedy zároveň v závislosti na parametru p – globálním napětí – relativně i délkukřivky. Speciálním případem je• exponenciální spline• polynomický spline pod napětím (volitelné váhy oblouků a opěrných bodů)• ν-spline (volitelné jen váhy opěrných bodů)Nelineární spline• “dřevěný” (geometrický) spline – interpolace pomocí klotoid0• “mechanický spline” – minimalizuje∫1 k 2 ds68


10.1.3 Bézierovy křivkyGlobální (neracionální) Bézierova křivkaDáno:Řídicí polygonVýpočet:Numericky nestabilní pro vícečlenný polygon. Pro vyčíslení se používá algoritmu de Casteljau.Použití:V grafických systémech (Corel Draw, true type fonts v MS Windows, AutoCAD), v teoretickýchvýpočtech pro popis tvarově složitých objektů (lopatky ap.), pokusy s Bernsteinovou bazí jako“násadou” v MKP.Bézierova reprezentace spline křivkyKřivka se vytváří po částech s tím, že výsledná křivka je třídy C n nebo GC n .Racionální Bézierova křivkaDáno:Řídicí polygon, váhy vrcholů řídicího polygonu.Výpočet:Je možné použít algoritmu de Casteljau v projektivním rozšíření euklidovského prostoru.Použití:Umožňují popis oblouků kuželoseček.10.1.4 B-splineCoonsův B-splineDáno:Charakteristický polygon, možnost přepočtu na řídicí polygon.Výpočet:Velmi jednoduchý, při implementaci možnost postupného generování oblouků.Použití:V grafických systémech (AutoCAD a další CAD systémy), letecký průmysl i pro NC obrábění.Obecný (neracionální) B-splineDáno:• řídicí polygon• stupeň (řád) B-spline• vektor parametrizace69


Výpočet:Použití de Boorova algoritmu.Použití:Dovoluje reprezentovat velké množství objektů. Většinu zadávajících parametrů nevolí uživatel,ale jsou vnitřně použity systémem. Speciální případem je Coonsův B-spline, Bézierova křivkaa lze jím reprezentovat i spline libovolného stupně. Lze tak popsat i objekty založené na <strong>geometrické</strong>spojitosti (β-spline, ν-spline ap.).NURBSDáno:• řídicí polygon• stupeň• vektor parametrizace• váhy vrcholů řídicího polygonuVýpočet:Použití de Boorova algoritmu.Použití:Dovoluje popsat i celé kuželosečky. Přední CAD systémy (CADDS5, Pro/Engineer, I-DEAS,Euclid) inzerují použití NURBS jako jednu z předností. Dříve uvedené metody jsou speciálnímpřípadem.10.1.5 Geometrická spojitostVe většině případů představuje jen jinou interpretaci možností B-spline křivek (ν-spline, β-spline ap.). Použít lze v rámci segmentace Bézierovy křivky. Používají se pro speciální velmipřesné <strong>modelování</strong>.10.2 Shrnutí poznatků o plochách10.2.1 Spline plochaDáno:• matice bodů• příčné derivace na krajích plátu a twisty v jeho rozíchVýpočet:• postupným interpolováním parametrických křivek pomocí kubických spline křivek doplnímeobě parciální derivace ve všech uzlech sítě,70


• na okrajových křivkách stanovíme druhé smíšené parciální derivace použitím kubickéspline interpolace vektory první derivace,• další interpolací vypočteme hodnoty druhé smíšené parciální derivace ve všech danýchbodech,• pro jednotlivé pláty známe 16 určujících vektorů a generujeme odpovídající pláty.Význam:Interpolace množin bodů. Použití v CAD/CAM systémech ve spojitosti s B-spline plochami aNURBS.10.2.2 Přechodová plochaDáno:Dvě křivky se shodnou parametrizací.Výpočet:i P (u, v) = a i (v)(1 − u) + a i+1 (v)u, v ∈ I v , u ∈ 〈0, 1〉.Význam:Je přímkovou plochou, proto má využití v <strong>modelování</strong> pro NC (3-osé obrábění). Nezajišťujeplátování.10.2.3 Bilineární Coonsův plátDáno:Čtyři okrajové křivkyVýpočet:⎡[1 − u, −1, u] ⎣⎤P 0,0 a 1 (v) P 0,1b 1 (u) P (u, v) b 2 (u) ⎦P 1,0 a 2 (v) P 1,1⎡⎣1 − v−1v⎤⎦ = o,Význam:Jsou-li protější strany hranice přímkové, přechází v přechodovou plochu. Nezajišťuje plátování.10.2.4 Bikubický Coonsův plátDáno:Čtyři okrajové křivky.Výpočet:⎡[F 0 (u), −1, F 1 (u)] ⎣⎤P 0,0 a 1 (v) P 0,1b 1 (u) P (u, v) b 2 (u) ⎦P 1,0 a 2 (v) P 1,1⎡⎣F 0 (v)−1F 1 (v)⎤⎦ = o,71


F 0 (t) = 2t 3 − 3t 2 + 1,F 1 (t) = −2t 3 + 3t 2 ,Význam:Zajišťují plátování. Velmi často používané v CAD systémech.10.2.5 Dvanáctivektorový plátDáno:• rohové body plátu• tečné vektory okrajových křivek v rozíchVýpočet:P (u, v) = [F 0 (u), F 1 (u), F 2 (u), F 3 (u)].⎡⎤ ⎡ ⎤P 0,0 P 0,1 P v 0,0 P v 0,1 F 0 (v)⎢ P 1,0 P 1,1 P v 1,0 P v 1,1 ⎥ ⎢ F 1 (v)⎥⎣ P u 0,0 P u 0,1 o o ⎦ ⎣ F 2 (v) ⎦ ,P u 1,0 P u 1,1 o o F 3 (v)F 0 (t) = 2t 3 − 3t 2 + 1,F 1 (t) = −2t 3 + 3t 2 ,F 2 (t) = t 3 − 2t 2 + t,F 3 (t) = t 3 − t 2 .Význam:Použito v sytému FMILL pro NC obrábění. Má vlastnosti bikubického Coonsova plátu.10.2.6 Šestnáctivektorový plátDáno:• rohové body plátu• tečné vektory okrajových křivek v rozích plátu• twisty v rozích plátuVýpočet:Viz dvanáctibodový plát, ale twistová sekce mapovací matice není nulová.Význam:Základ pro výpočet spline ploch.72


10.2.7 Obecný Coonsův plátDáno:• okrajové křivky• příčné derivace podél okrajových křivek• twisty• splněny musí být podmínky souhlasuVýpočet:⎡⎢⎣[F 0 (u), −1, F 1 (u), F 2 (u), F 3 (u)].P 0,0 a 1 (v) P 0,1 P v (0, 0) P v (0, 1)b 1 (0) P (0, v) b 1 (0) P v (u, 0) P v (u, 1)P 1,0 a 2 (v) P 1,1 P v (1, 0) P v (1, 1)P u 0,0 P u (0, v) P u (0, 1) P uv (0, 0) P uv (0, 1)P u (0, 0) P u (1, v) P u (1, 1) P uv (1, 0) P uv (1, 1)Význam:Plátování k plochám popsaným analyticky.10.2.8 Bézierovy plochyDáno:Řídicí síť.⎤ ⎡⎥ ⎢⎦ ⎣F 0 (v)−1F 1 (v)F 2 (v)F 3 (v)⎤⎥⎦ = oVýpočet:P (u, v) =m∑ n∑V i,j Bi m (u)Bj n (v).i=1 j=1Význam:Interakční <strong>modelování</strong> tvarově složitých objektů. Popis ploch, které vznikly i jiným způsobem.10.2.9 Coonsův B-splineDáno:Charakteristická síť.Výpočet:i,j P (u, w) = 1 36 C(u − i)i,j V C T (w − j),73


kde u ∈ 〈i, i + 1〉, w ∈ 〈j, j + 1〉, C(t) = [C 1 (t), C 2 (t), C 3 (t), C 4 (t)] je vektorová funkce, jejížsložky jsou dány předpisemi,j V =C 1 (t) = −t 3 + 3t 2 − 3t + 1,C 2 (t) = 3t 3 − 6t 2 + 4,C 3 (t) = −3t 3 + 3t 2 + 3t + 1,C 4 (t) = t 3 .⎡⎢⎣⎤V i,j V i,j+1 V i,j+2 V i,j+3V i+1,j V i+1,j+1 V i+1,j+2 V i+1,j+3⎥V i+2,j V i+2,j+1 V i+2,j+2 V i+2,j+3⎦V i+3,j V i+3,j+1 V i+3,j+2 V i+3,j+3Význam:Popis uniformní spline plochy. Speciální B-spline plocha.10.2.10 Obecná B-spline plochaDáno:• řídicí síť,• stupeň v každém parametru,• vektory parametrizace.Výpočet:P (u, v) =m∑i=1n∑V i,j Ni k (u)Nj(v)lj=1Význam:Základ pro <strong>modelování</strong>í ploch v mnoha systémech. Dovoluje popis dříve uvedených ploch jednotnýmzpůsobem.10.2.11 NURBS plochaDáno:• řídící síť,• stupeň v každém parametru,• vektory parametrizace,• váhy vrcholů řídící sítě.Výpočet:Použití vztahu pro B-spline v homogenních souřadnicích.Význam:Použito v “high-tech” CAD/CAM systémech. Dovolují i popis kvadrik, rotačních a translačníchploch ap.74


10.2.12 Trojúhelníkové plátyDáno:Řídicí trojúhelníková síť.Výpočet:Polynomy v barycentrických souřadnicích.Význam:Aplikace při tringulacích ploch. Zvlášť významné pro digitální model terénu (použití neparametrickýchtrojúhelníkových plátů).75


Kapitola 11Modelování těles11.1 Jemný úvod do topologieV <strong>geometrické</strong>m <strong>modelování</strong> se většina algoritmů omezuje na tělesa typu manifold.Tento pojem se definuje pomocí algebraické topologie. Jejím základním pojmem je topologickáekvivalence, čímž rozumíme spojité zobrazení euklidovských prostorů, pro nějž existuje iinverzní spojité zobrazení.Definice 11.1 Řekneme, že těleso v E 3 je typu manifold, jestliže každý jeho bod má okolítopologicky ekvivalentní s otevřeným kruhem v E 2 .K tělesu lze vytvořit rovinný model – graf s možností přidělení orientace hranám a i smožností jejich ohodnocení. Rovinné oblasti v grafické reprezentaci grafu odpovídají stěnám(plochám) popisovaného tělesa.Pozn.: Nakreslete rovinné modely pro kouli, válec, anuloid, Möbiův list, Kleinovu lahel,jehlan ap.Pomocí rovinného modelu lze rozhodnout o orientovatelnosti povrchu tělesa.Definice 11.2 Rovinný model tělesa je orientovatelný, jestliže pro stejné hrany, které se vmodelu vyskytují vícekrát, neexistuje posloupnost hran rovinného modelu, v níž by stejně ohodnocenáhrana byla v několika výskytech ve shodné orientaci.Pozn.: Ověřte pro mapy (rovinné modely) výše uvedených ploch.11.1.1 Eulerova charakteristika tělesOznačme:• V – počet vrcholů tělesa,76


• E – počet hran tělesa,• F – počet stěn tělesa.Pro tělesa jako je kulová plocha, anuloid ap. vyjdeme z rovinného modelu.Než dokážeme Eulerovu větu, uvedeme pomocné tvrzení pro konvexní mnohostěny.Věta 11.1 (Descartova) Pro součet σ velikostí všech úhlů mezi hranami konvexního mnohostěnuplatíσ = 2π(V − 2)Důkaz: Použijeme těchto pomocných tvrzení:• Součet vnitřních úhlů v n-úhelníku je π(n − 2).• Každý n-úhelník, který neleží v promítací rovině, se promítne do n-úhelníku a tudíž senezmění počet vrcholů a ani součet vnitřních úhlů.Mnohostěn promítneme do roviny tak, že žádná ze stěn neleží v promítací rovině. Vzhledemk tomu, že promítané těleso je konvexní, je průmět konvexním n 1 -úhelníkem, tj. n 1 vrcholů sepromítlo na hranici množiny bodů, která je průmětem mnohostěnu.Pro součet σ 2 hranových úhlů u vrcholů neležících na hranici průmětu platíσ 2 = 2π(V − n 1 )Pro součet σ 1 hranových úhlů hraničního n 1 -úhelníka platíσ 1 = π(n 1 − 2).Součet σ 1 musíme do celkového součtu započítat dvakrát, neboť hranice patří viditelné i neviditelnéčásti průmětu tělesa. Protoσ = 2σ 1 + σ 2 = 2π(n 1 − 2) + 2π(V − n 1 ) = 2π(V − 2)Nyní již zformulujeme Eulerovu větu, která hraje velmi významnou roli v <strong>geometrické</strong>m<strong>modelování</strong> a vedla i ke vzniku Eulerových operátorů.Věta 11.2 (Eulerova) V konvexním tělese platíV − E + F = 2Důkaz: Mnohostěn obsahuje s i hraničních i-úhelníků (i = 3, . . .). Platí∑s i = F a ∑ is i = 2E (11.1)iiSoučet σ všech hranových úhlů máme podle Descartovy věty 11.1σ = π ∑ i(i − 2)s i = 2π(V − 2) (11.2)77


Z (11.1) vypočteme2E − 2F = ∑ i(i − 2)s ia po dosazení do (11.2) mámeV − E + F = 2.Uvedená věta se dá zobecnit i pro jistou třídu nekonvexních těles. Právě tělesy, pro něžplatí zobecnění Eulerovy věty – věta Euler-Poincaré, se zabývá <strong>geometrické</strong> <strong>modelování</strong>. Ktomu zavedeme další tři charakteristiky těles, tzv. Bettiho čísla:• H 0 – udává počet komponent K tělesa, většinou tedy H 0 = 1,• H 1 – udává počet křivek, které můžeme určit na povrchu tělesa tak, aby se povrch nerozpadlna více komponent (např. na hranolu H 1 = 0, pro anuloid H 1 = 2. Toto Bettiho číslourčuje tzv. genus G tělesa, který udává “počet průchozích děr v tělese” a platí G = 1 2 H 1.• H 2 – vypovídá o orientovatelnosti plochy. Pro námi studovaná tělesa H 2 = H 0 .Věta 11.3 (Euler-Poincaré) PlatíV − E + F = H 0 − H 1 + H 2 = 2(K − G).Pro stěny, v nichž je “otvor” je potřeba použít tzv. “bridge-hran” tak, aby hranice stěny bylasouvislá. Větu 11.3 je možné upravit i tak, aby tyto bridge-hrany nebylo nutné konstruovat.Označíme-li celkový počet děr ve stěnách H, pak lze psátV − E + F − H = 2(K − G).Velmi často použiváným postupem v teorii <strong>geometrické</strong>ho <strong>modelování</strong> je princip duality.Duální rovinný model získáme takto:• uzly duálního modelu odpovídají stěnám,• hrany v duálním modelu symbolizují společnou hranu stěn.Věta 11.4 Použití principu duality nemění Bettiho čísla a Eulerovu charakteristiku tělesa, tj.nezmění se tak platnost Euler-Poincarého rovnice.11.2 Typy modelůPro popis <strong>geometrické</strong>ho modelu prostorových (objemových) objektů se používá:• Dekompoziční reprezentace - používá “pokrytí” tělesa shodnými elementárními tělesy,nejčastěji krychlemi, nebo výhodněji nahradí těleso systémem krychlí a celou strukturupopíše pomocí tzv. oktalového stromu. Tj. z každého uzlu grafu vychází osm hran.Podstata tvorby oktalového stromu spočívá v očíslování osmi krychlí, na které rozdělímepůvodní krychli.78


• CSG reprezentace - CSG = Constructive Solid Geometry - je založena na popisu objektupomocí základních těles (hranol, válec, kužel, koule, anuloid ap.) použitím množinovýchoperací (sjednocení, průnik, rozdíl). Tomuto postupu <strong>modelování</strong> odpovídá tzv.CSG – strom.• B - reprezentace - B = Boundary, tj. reprezentace pomocí hranice - těleso je popsánoorientovanými stěnami. Stěna je zpravidla částí (oblastí) roviny. Hranice oblasti je v nejjednoduššíchsystémech tvořena lomenou čarou, ve vyspělejších modelerech může hraniceobsahovat i části křivek (kružnice, elipsy, příp. i některé z křivek počítačové grafiky).Oblast může být i vícenásobně souvislá (otvory ve stěnách). Špičkové systémy umožňují,aby stěnami byly i části ploch (kvadratické plochy nebo plochy počítačové grafiky).11.3 Volná parametrizaceBěžný styl práce uživatele s CAD systémem lze charakterizovat těmito kroky:1. Vytvoření <strong>geometrické</strong>ho modelu včetně realizace návrhových a kontrolních výpočtů. Intuitivníoptimalizace technického řešení.2. Odvození průmětů objektu pro potřeby výkresové dokumentace.3. Doplnění výkresu o kóty, popisy, rohové razítko ap.Doplňování kót do výkresu zde vlastně slouží k vizualizaci metrických vztahů v modelu. Kótyjsou asociovány s geometrií součásti, tj. pokud dojde dodatečně ke změně některých rozměrův modelu, je tato změna automaticky provedena i v kótách.Za nový přístup k aktualizaci <strong>geometrické</strong>ho modelu lze považovat možnost rozměrovýchzměn pomocí změn údajů v kótách. Pro konstruktéra je vynikajícím nástrojem ta skutečnost,že pomocí kót si volí měnitelné <strong>geometrické</strong> charakteristiky objektu. Ovšem z hlediska implementacese jedná o velmi složitou záležitost. Vezmeme-li jako jednoduchý rovinný příkladtrojúhelník, může uživatel po interakčním nakreslení (tahání čáry pomocí myši) libovolně zvolenéhotrojúhelníka provést jeho okótování, a tím vlastně konstrukci trojúhelníka z danýchprvků. Okótovat mohl uživatel např. všechny tři strany nebo dvě strany a úhel ležící protijedné z nich ap. Systémy, které umožňují volnou parametrizaci rovinných objektů pomocí kót,se nazývají sketchery. Příkladem je DesignView firmy Computervision. Ve špičkových CAD systémech(Pro/Engineer, CADDS5 ap.) je možná volná parametrizace i pro prostorové objekty.Volná parametrizace geometrických objektů si vyžádala i určité množství teoretických prací.Mezi nejzávažnější otázky patří:1. stanovit, kolika podmínkami je nutné objekt určit,2. zjistit případnou redundanci v údajích,3. rozhodnout, zda existuje aspoň jeden objekt splňující dané podmínky,4. rozhodnout, zda počet řešení je konečný,79


5. určit aspoň jedno řešení splňující dané podmínky,6. určit všechna řešení splňující dané podmínky.Výpočet geometrických útvarů při použití volné parametrizace se provádí v existujícíchsystémech jednou z těchto metod:1. Elementární metody(a) Fitzgeraldova metoda. Byla použita v roce 1977 v systému PADL a je založenana tom, že volit lze pouze horizontální a vertikální kóty rovinného útvaru (všechnystrany tohoto útvaru jsou rovnoběžné se souřadnicovými osami). Pro testování případnénadbytečnosti některé kóty se s výhodou využije testu na existenci cykluv grafu G = (U, H), kde množina uzlů U odpovídá stranám útvaru a pro množinuplatíH ⊆ {{a, b}|a ∈ U, b ∈ U}{a, b} ∈ H ⇔existuje kóta vzdálenosti stran odpovídajících uzlům a, b.Vlastní výpočet souřadnic vrcholů objektu je zde snadný, neboť každá kóta generujelineární rovnici (příp. několik takových rovnic) typu∆x = kóta, resp. ∆y = kóta.Značnou nevýhodou je, že systém se omezuje na velice úzkou třídu rovinných geometrickýchobjektů (pravoúhelníků).(b) Konstruktivní metody. Jsou založeny na rozkladu údaje zadaného v kótě naoperátory relativní polohy (Gossard, Sakurai 1988) včleněné do hybridního <strong>geometrické</strong>homodelu (B a CSG reprezentace). Makrojazyk pro popis objektu elementárnímikonstrukcemi na základě okótování útvaru použili v roce 1985 Cugini a Devoti.2. Algebraické metody(a) Globální metoda. Je založena na zřejmé myšlence, že každá kóta generuje jednunebo dvě algebraické (obecně nelineární) rovnice. K řešení soustavy se používá numerickýchmetod (Newton – Raphsonova nebo metoda Doolitllova LU rozkladu).(b) Chyzova metoda. Tato metoda představuje vlastně přípravnou fázi ke globálnímetodě. Chyz v roce 1985 došel v rámci rozsáhlých prací na MIT ke konstrukciorientovaného grafu a celou teorii založil na tvrzení:Je-li objekt dobře dimenzován, pak každý uzel grafu je koncovým uzlem dvou hran.3. Metody umělé inteligence80


(a) PICME metody. V roce 1986 Sunde navrhl pro systém PICME metodu, která mávelmi blízko k popisu rozboru a konstrukce při řešení školních konstruktivních úloh.Podstatu vysvětlíme na příkladu. Trojúhelník je určen délkami stran d1 a d2 a velikostíúhlu a1. Umístění konstruovaného trojúhelníka je dáno bodem B1 a odchylkoustrany B1 B2. Jednotlivé kroky specializovaného expertního systému lze popsattakto:• známe bod B1, odchylku strany B1 B2 a délku d1 ⇒ známe bod B2,• známe bod B1, velikost úhlu a1 a jedno rameno - B1 B2 - tohoto úhlu ⇒ známepřímku p3, na které leží bod B3,• známe bod B2 a víme, že bod B3 má od tohoto bodu vzdálenost d2 ⇒ bod B3leží na kružnici k = (B2, d2),• bod B3 leží na přímce p3 a kružnici k ⇒ známe předpis pro určení bodu B3 =p3 ∩ k.V roce 1988 provedl Aldefeld modifikaci této metody založenou na stanovení strategiepostupného odvozování.(b) Sundyho metoda. V roce 1987 Sundy uveřejnil metodu vhodnou k testování úplnostiokótování objektu. Sundy zavedl pojem CD a CA množin. Do CD množinyD i patří body vázané podmínkou vzdálenosti. CA množiny A i jsou konstruovány nazákladě zadaných úhlů a obsahují ramena těchto úhlů.Konstrukce uvedených množin probíhá podle následujících pravidel:• Je-li dána vzdálenost bodů B j a B k , vytvoří se CD množina D i = {B j , B k }.• Je-li dán úhel B j B k B m , vytvoří se CA množinaA i = {B j B k , B k B m }.• Jestliže dvě CD množiny D i a D s mají aspoň jeden společný prvek B j , je známúhel α j při vrcholu B j a pro body B k a B m určující ramena platí B k ∈ D ia B m ∈ D s , nahradíme množiny D i a D s jedinou množinou D i ∪ D s .• Jestliže dvě CA množiny A i a A s mají aspoň jednu společnou přímku, tj. existujíB j B k ∈ A i a B m B n ∈ A s tak, že B j B k = B m B n nahradíme množiny A i a A sjedinou množinou A i ∪ A s .Kritériem pro dostatečné okótování objektu je, aby se pomocí uvedených pravidelpodařilo zkonstruovat jedinou CD množinu obsahující všechny vrcholy objektu.Problémem je, že tento postup je použitelný pro rovinné lomené čáry kótované pouzepomocí dvou typů kót (vzdálenosti a úhlu) a rozšíření na jiné typy není známo.11.4 Cvičení11.1 Na příkladu krychle objasněte Eulerův vztah!11.2 Pro rovnoběžních proveďte úplné okotování a sestavte Chyzův graf!81


11.5 Kontrolní otázky11.1 Popište základní výhody a nevýhody dekompozičního modelu, CSG a B reprezentaceobjemového modelu!11.2 Popište princip, na němž funguje sketcher!11.3 Uveďte, jaké role hraje kótování v CAD systémech! Rozlište standardní systémy a systémys variační (parametrickou) geometrií!82


Kapitola 12CAD/CAM/PLMUplatnění výpočetní techniky a komunikačních technologií v různých oblastech lidské činnostipřináší největší užitek tehdy, je-li díky informačním technologiím možné řešení jinak neřešitelnýchotázek. Naopak v oblastech, kde výpočetní technika je jen substitutem jiných nástrojů,může být její užitek sporný a zejména neekonomický, neboť počítačové řešení není zatím levnější,a to i přes velmi příznivý vývoj cen v oblasti technických prostředků. Oblast tvůrčítechnické práce je však evidentně tou oblastí, v níž je velká šance na dosažení maximálníhoefektu a návratnosti investice do příslušného vybavení. Jasně se ale ukazuje, že jde o investicedo programových produktů a služeb, v malé míře se investice týkají vlastní techniky.12.1 Pojem CADPod zkratkou CAD rozumíme zpravidla Computer Aided Design, tedy počítačem podporovanékonstruování a navrhování. V prehistorii toho oboru (jde o 60. léta minulého století) se někdymluvilo o počítačové podpoře tvorby výkresové dokumentace či o počítačem podporovanémkreslení. V naší zemi se navíc přidal výklad založený na pojmu automatizace inženýrských prací(AIP). Jestliže nepochybujeme o tom, že inženýrská činnost je kreativní, pak je jasné, že CADnení automatizací této činnosti, ale její podporou. Konstruktér nebo projektant by v důsledkuuplatnění CAD měl získat větší prostor pro tvůrčí činnost, neboť činnosti rutinní povahy ačinnosti archivační by měly být s výhodou svěřeny počítačové podpoře. V mezinárodní komunitěse vžilo následující vymezení pojmu CAD: „CAD je souborem programových a technickýchprostředků a metod, pomocí nichž člověk a výpočetní technika vytvářejí tým s cílem, abydohromady pracovali lépe než každý zvlášť.Od samého počátku však v oblasti CAD šlo o propojení konstrukční a návrhové činnosti sdalšími technickými i obchodními postupy. Proto se velmi brzy v automobilovém, leteckém aelektrotechnickém průmyslu objevilo spojení CAD/CAM, kde zkratka CAM označuje ComputerAided Manufacturing, tj. počítačem podporovanou přípravu výroby.12.2 Geometrické <strong>modelování</strong>Z předcházejícího textu vyplývá, že úkolem CAD je vytvoření prvotních dat, z nichž vycházejídalší profese, zejména pak technologové, ekonomové, obchodníci a údržba. CAD tedy poskytuje83


odpovídající podporu konstruktérovi, ale zároveň vede k pořízení datové základny o geometriinávrhu. Jádrem CAD systému je z tohoto důvodu geometrický modeler, jehož uživatelskévlastnosti a způsob datového popisu objektů rozhodují jak o komfortu práce konstruktéra činávrháře, tak i o možnosti dalšího účelného využití dat v technologické přípravě produkce.Kvalitní datový model geometrie objektu je základem pro archivaci a k naplnění ideálu bezvýkresovédokumentace. Vytváření rozsáhlé výrobní dokumentace v podobě technických výkresůse postupně stává anachronismem. Místo výkresů, které jsou z části stylizací reálných geometrickýchvlastností, je daleko výhodnější ukládat a dále předávat plnohodnotný prostorovýmodel navrženého objektu. Platí to zejména tam, kde výroba využívá prvků automatizace (NCobrábění apod.).Nyní uvedeme základní vlastnosti geometrických modelerů, tj. podáme přehled o pojmech,které čtenář najde v informačních zdrojích prodejců programového vybavení. Tento přehledby měl umožnit i snazší pochopení tabulek, které z podkladů dodavatelů CAD technologiípřipravila redakce jako doplnění tohoto textu.12.2.1 2D a 3D systémJde o základní charakteristiku systému, která určuje, zda systém pracuje s rovinnými (2D) neboprostorovými údaji (3D), a to jak na uživatelské úrovni, tak v datovém modelu. Zejména u 2Dsystému je nutné rozlišit, zda se systém orientuje na kreslení nebo na <strong>modelování</strong>. Podstatnýmrozdílem je rozsah a kvalita ukládaných dat. Pro moderní <strong>geometrické</strong> <strong>modelování</strong> je typickéukládání vazeb (constrains), nikoliv jen vypočtených výsledných souřadnic. Uveďte konkrétnípříklad: pokud v systému určíme kružnici, která se dotýká tří jiných kružnic, je podstatné,zda pro určenou kružnici se uloží jen souřadnice středu kružnice a její poloměr, nebo zdase zaznamená i informace o vazbě, tj. dotyk s danými objekty. V systému, který ukládá (resp.může tak činit na přání) i vazby, je pak velmi příznivá situace při úpravách. Pro zkonstruovanoukružnici je v takovém případě např. zachován dotyk s danými kružnicemi i při jejich posunutí,změně poloměru či dokonce při výměně kružnice za jinou křivku.12.2.2 UchopováníTechnika uchopování (snap) je základním nástrojem pro popis geometrie. Používá se uchopovánína mřížce (grid snap) nebo uchopování na objektu (object snap). Díky uchopovacímu režimuse vlastně ”tahání čar pomocí myši” mění na <strong>modelování</strong> geometrie. V případě uchopování namřížce je zadaný bod posunut do nejbližšího bodu konstrukční mřížky, tj. souřadnice zadanéhobodu jsou upraveny na násobek zadaného kroku konstrukční mřížky. Velice užitečná a propracovanáje technika uchopování na objektu. Režim uchopování je zpravidla vizualizován jakonavigátor u kurzoru. Uživatel může vybrat, které režimy uchopení mohou být uplatněny a systémnabízí v navigátoru kurzoru ten způsob uchopení, který odpovídá dané poloze kurzoru. Prouchopování na objektu jsou zpravidla k dispozici tyto režimy: uchopení v průsečíku, v krajnímbodě, v patě kolmice, tečné uchopení, uchopení v nejbližším bodě, uchopení ve středu kružnicenebo v polovině daného prvku apod. Pomocí uchopení na objektu můžete např. zkonstruovatkružnici, která dotýká tří daných kružnic. Aktivujete tečné uchopování a postupně ukážete natři dané kružnice. Umístěním kurzoru do vhodného místa na kružnici zároveň ovlivníte, kteréz možných řešení bude vybráno. Zásadní rozdíl mezi různými systémy je ale v tom, zda režim84


uchopení vede jen k výpočtu geometrických vlastností nebo zda je zároveň uložena informaceo příslušné vazbě, tj. zda režim uchopování je nástrojem variační geometrie (viz dále).12.2.3 AsociativitaTento pojem se objevuje zejména v souvislosti s kótováním a šrafováním, tedy ve výkresověorientovaných systémech. Šrafování je asociativní, pokud při změně geometrie hranice se automatickyupraví i šrafování. Z hlediska datové reprezentace se jedná o to, zda informace ošrafované oblasti je řešena odkazem na <strong>geometrické</strong> prvky, nebo zda jsou v položce popisujícíšrafování uloženy přímo souřadnice a další informace o hranici. V případě kótování asociativitarovněž znamená automatickou reakci údajů v kótě na změnu geometrie. Je-li v CAD systémuasociativní kótování, pak kóta vizualizuje reálné <strong>geometrické</strong> vztahy (délky, úhly apod.) v modelu.Jestliže pomocí editačních funkcí systému upravíme geometrii, např. pomocí natahováníprodloužíme hřídel, příslušná kóta s údajem o délce hřídele bude obsahovat novou číselnouinformaci. V moderních CAD systémech se však kóta používá i k pokročilejším modelovacímtechnikám - viz parametrizace modelu.Asociativitu však najdeme i v podstatně obecnějším významu. Jde např. o vztah prostorovéhomodelu a technického výkresu. Pokud upravíme prostorový model, např. změníme poloměra délku válcové části hřídele, pak v technickém výkrese odvozeném z modelu (asociovaným kmodelu) dojde automaticky k úpravě geometrie i kót. V tomto případě by šlo o jednosměrnouasociaci. V moderních systémech je dokonce zajištěna i opačná cesta, totiž změna modelu nazákladě změny geometrie ve výkresu. Pochopitelně se tento druhý směr asociativity týká jen„nekosmetických úprav, které transparentním způsobem mění geometrii.Jiným typem asociativity je asociativnost mezi sestavou a dílem, či díly navzájem. Jednáse o špičkový nástroj pro podporu konstruování v týmu. Základní ideovou je propagování (šíření)změny jednoho dílu na díly ostatní. Při návrhu dílu je v tomto případě část <strong>geometrické</strong>informace přebírána z jiných dílů. Celé technické dílu je popsáno pomocí vztahů rodič - potomek.Potomek dědí od rodiče některé informace. Např. píst motoru může být potomkem blokumotoru. Je-li změněna geometrie bloku, pak se automaticky změní i geometrie pístu.12.2.4 Parametrizace modeluParametrizace <strong>geometrické</strong>ho modelu je založena na využití kót pro změnu geometrie. Kótatak není v tomto případě jen nástrojem vizualizace geometrických veličin, ale je naopak ipomůckou pro změnu geometrie. Jestliže např. u válcové části hřídele změníme kótu popisujícíprůměr válce, pak systém přepočítá geometrii a válec se změní. Pokud systém není vybavenmožnostmi parametrizace modelu, pak takováto změna vede k nekonzistenci, která byla typickápro technické kreslení, tj. ke stavu, kdy vizuální stránka geometrie na výkresu nemusí odpovídatrealitě. Byl to důsledek technologie přípravy výkresové dokumentace. Při ručním kreslení bykaždá změna vedla k opětovnému pracnému nakreslení výkresu. Proto se volila cesta přepsáníúdaje v kótě.Moderní systémy umožňují, aby parametry objektu byly vázány pomocí matematickýchvztahů. Např. výška válce má být vždy dvojnásobkem jeho poloměru. Pokud pak změnímepoloměr, automaticky se upraví i výška. Takovéto vazby mohou být popsány posloupnostídosazovacích příkazů nebo dokonce systémem rovnic. Pokud je možné zadat rovnice vazeb mezi85


parametry, je pak možné u zmíněného válce měnit jak poloměr, tak výšku, a systém zajistí,aby byl proveden přepočet geometrie tak, že výška bude dvojnásobkem poloměru.12.2.5 Variační geometrieVariační geometrie je založena na uplatnění geometrických vazeb, parametrizaci pomocí kót ana možnosti vytvářet vazby mezi parametry. Ve většině pokročilých systémů je variační geometrieuplatněna na rovinnou informaci a ta část systému, která pracuje na principu variačnígeometrie se nazývá sketcher, čili skicář. Geometrická informace vzniká volným návrhem topologie,jakýmsi črtáním. Později lze doplnit vazby jako je kolmost, rovnoběžnost apod. ametrickou informaci, tj. model parametrizovat. V některých systémech se dnes již objevují iprvky prostorové variační geometrie.12.2.6 Tvarově složité objektyTvarově složitými objekty rozumíme zejména interpolační křivky a plochy. Základními metodamivytváření tvarově složitých křivek je interpolace posloupnosti bodů pomocí spline křivky,kterou si lze představit jako pružné (nehmotné) laťkové křivítko, které je zprohýbáno okolodaných bodů (uzlů) a pro které jsou případně popsány podmínky chování v krajních bodech(volný konec, vetknutí, uzavření). Jiným způsobem návrhu geometrie tvarově složitých objektů(křivek) je popis pomocí řídícího polygonu. Křivka přibližně sleduje tvar řídícího útvarua reaguje samozřejmě na změny tohoto řídícího útvaru. Tato technika vznikla v podmínkáchfrancouzských automobilek a je spojena se jmény de Casteljau a Bézier. Existuje přímý převodmezi interpolačními křivkami a křivkami určenými řídícím polygonem. Většina systémůukládá tvarově složitý objekt pomocí řídícího polygonu. Jde vlastně o vynikající komprimačnímetody, neboť tvarově složitý útvar má velmi jednoduchý a datově nenáročný popis, totiž posloupnostněkolika bodů. Zobecněním Bézierových objektů jsou tzv. NURBS (Non UniformRational B-Spline) objekty, které mají tu výhodu, že pomocí nich lze popsat i standardní objekty<strong>geometrické</strong>ho <strong>modelování</strong>, jako je kružnice, elipsa atd., a příslušné <strong>geometrické</strong> výpočtypak pracují s jednotným popisem.Pro tvarově složité objekty v prostoru se používá řada velmi flexibilních technik. Jde ometodu plátů, neboli záplat (patch, resp. blend), kinematické vytvoření ploch (sweep), interpolacena systému řezů (loft) a samozřejmě je možný i popis analogický k popisu křivek, tj.popis pomocí řídící sítě bodů, resp. interpolace na množině bodů. Rovněž v případě plochse systémy orientují zpravidla na uložení objektu pomocí NURBS popisu. Záplatou (patch)rozumíme určení plochy pomocí okrajových křivek (zpravidla čtyř). Blend je záplatou, kterázajišťuje hladké napojení na jiné plochy. Pro sweep je typické, že je dán pohybujícím se profilema několika vodícími prostorovými trajektoriemi (path curve, resp. rail curve). Počet vodícíchkřivek je zpravidla dvě nebo tři, teoreticky je možné určení až čtyř vodících linií. Profil se připohybu může měnit a změna je zpravidla dána právě vodícími liniemi. Pro lepší orientaci uživatelejsou některé sweep objekty nabízeny pod speciálním označením. Jde především o objektyrotační, translační a příp. šroubové Technika loftování představuje vytvoření plochy na základěněkolika zadaných řezů.Nejnáročnější algoritmy <strong>geometrické</strong>ho <strong>modelování</strong> představuje zaoblování a odvozováníekvidistanty (rovnoběžné křivky nebo plochy k danému objektu). Zaoblení se může týkat vr-86


cholů, hran nebo i dvojice ploch. Poloměr zaoblení může být konstantní nebo proměnný,a tolineárně nebo i obecně. Je zřejmé, že např. v případě zaoblení několika hran, které mají společnývrchol jde o velmi komplikovanou geometrickou úlohu a k úplné spokojenosti konstruktéra čitechnologa tuto úlohu vyřeší jen nejvyspělejší systémy.12.2.7 Množinové operaceMnožinovými operacemi rozumíme sjednocení, průnik a rozdíl geometrických útvarů. Místo názvumnožinové operace se používá také označení logické nebo boolské operace Provrtání objektuje v řeči množinových operací odečtení válce od daného objektu. S množinovými operacemi sesetkáváme i v rovinném případě, kdy jde o skládání plošných útvarů.Moderní metody <strong>geometrické</strong>ho <strong>modelování</strong> se evidentně snaží o přizpůsobení nabízenýchmetod způsobu uvažování uživatele. Místo množinových operací se tak v nabídce objevujíoperace technologické (tzv. features), jde např. o pojmy jako je díra (hole), žebro (rib) apod.Provedení množinových operací je tak přítomno jen skrytě. Podstatné je, že nabídka technik<strong>modelování</strong> může být v případě features i otevřená pro vytváření uživatelských operací.12.2.8 Hybridní modelářOznačení modeláře přívlastkem hybridní může mít dva významy. Hybridnost se může týkatpoužitých geometrických objektů, nejčastěji toho, že při <strong>modelování</strong> je možné kombinovat prácis tělesy a povrhy (plochami). Za hybridní modeláře se však také považují systémy, v nichžje možné volně kombinovat explicitní popis geometrie s parametrickým popisem, tj. některéčásti vytvářet klasickými množinovými operacemi bez použití vazeb a parametrů a jiné dílyparametrizovat.12.2.9 Specializované modulyDosud jsme se zmínili o <strong>geometrické</strong>m modeleru, který je jádrem CAD systému. Z hlediskaužitné hodnoty systému je samozřejmě důležité, jakou funkcionalitu s ohledem na skutečnépotřeby uživatele daný systém nabídne. Zásadní rozdíly mezi systémy budou tedy zejménave specializovaných modulech, které využívají <strong>geometrické</strong>ho jádra daného systému. Tyto specializovanémoduly jsou často nabízeny třetími stranami, tj. nejsou dodávány přímo firmou,která stojí za příslušným CAD systémem. U některých systémů najdeme až stovky specializovanýchmodulů, což z nich, jak dále uvedeme, činí ”velké” CAD systémy. Tradičními specializovanýmimoduly jsou: moduly fotorealistické vizualizace (renderování), výpočetní moduly(lineární mechanika a dynamika), subsystémy pro návrh a rozvinování plechových dílů, pronávrh potrubních systémů nebo návrh kabeláže, knihovny normalizovaných dílů, moduly propřípravu rozmístění objektů (nesting) a generování střihových a pálících programů, speciálnímoduly pro návrh forem a pro platové díly, moduly pro řešení prostorových nároků kola přednínápravy automobilu, moduly pro zasklení a kinematiku stěrače, moduly pro ergonomii a bezpečnostapod. Ke specializovaným modulům patří i velmi ceněné moduly analýzy tolerancí,které dokáží posoudit kombinace tolerančních tříd, v nichž je sestava funkční.87


12.2.10 Výměnné formátySoučasný svět je světem mnohostranné kooperace, v níž nemá místo unifikace, ale velmi žádoucíje kompatibilita (slučitelnost, přenositelnost). Platí to i o CAD systémech, kde bylo učiněnoněkolik pokusů o vytvoření zcela univerzálního výměnného formátu. Do této kategorie patříIGES a modernější STEP. Normotvorné úsilí organizací, jako je ISO, však naráží na zdlouhavosttvorby normy, což je v rozporu s relativně vysokou dynamikou pokroku v oblasti informačníchtechnologií. Proto řada výrobců i specializovaných firem nabízí přímý převod dat mezi různýmisystémy. Nejvýznamnější firmy navíc vytvořily vlastní ”de facto” standardy a tím se snažíusnadnit migraci z jiných systémů na jejich systém. Příkladem takovéhoto formátu je formátDXF vyvinutý firmou Autodesk.12.3 Rozdělení CAD systémůTradičně lze CAD systémy rozdělit na malé, střední a velké. Každé takovéto dělení může býtvelice diskutabilní. Důležité je stanovit, čím se dané systémy liší. Základní rozdíly lze vidět, veshodě s významnými analytiky trhu CAD/CAM (Technicom, Daratech), v následujících rysech:• Komplexnost nabídky nadstavbových a specializovaných modulů a vazby na CAM a dalšíCA technologie (výpočty v nelineární oblasti, testování kvality apod.).• Orientace na <strong>geometrické</strong> <strong>modelování</strong> nebo na tvorbu výkresové dokumentace.• Míra uplatnění variační geometrie a obecnost použitých tvarově složitých objektů.• Podpora práce v týmu a v kooperačních řetězcích.• Podíl na trhu v „high tech firmách.• Cenová hladina za licenci pro jedno pracovní místo a celková licenční politika.Uveďme hlavní představitele jednotlivých kategorií systémů.Nejdramatičtěji se situace v posledních letech vyvíjela v oblasti velkých, tj. nejkomplexnějších,CAD systémů. Velmi silná je pozice systému CATIA, který je používán hlavně v automobilovémprůmyslu a souvisejících oborech. Tradičními silně rozšířenými velkými systémy jsouPro/Engineer a Unigraphics. Po velkých fúzích a převzetí firem momentálně silnějšími partneryje zastaven či přibržděn další vývoj systémů IDEAS, CADDS5, ICEM. Naopak lze pozorovat,že firma Autodesk chce systém Inventor přivést do rodiny velkých systémů.Tradičními středními systémy je AutoCAD (resp. Mechanical), Microstation a nově SolidWorksa SolidEdge. Z produkce domácích firem je pozoruhodným středním systémem systémVariCAD. Střední systémy představují kompromis mezi nákladností velkých systémů a požadavkyna funkcionalitu.Malé systémy se zpravidla orientují na tvorbu výkresové dokumentace, resp. představujíčasto účelově vázané (zpravidla jednoduché a levné) profesní systémy bez obecnější funkcionality.Mezi hromadně používané a známé systémy této kategorie patří např. AutoCAD LT.88


12.4 Výběr CAD systémuJak si z rozsáhlé nabídky, kde je tak zřetelná převis této nabídky nad poptávkou, dobře vybrat?Existuje nejlepší systém? Co má být vzato v úvahu při výběru?Především je nutné zdůraznit, že nejlepší systém obecně neexistuje. Existuje však nejlepšířešení pro dané potřeby. Především je tedy nutné si uvědomit, proč CAD systém potřebujeme,co od něj očekáváme dnes a jaké budou naše budoucí potřeby, do jakých kooperací chcemevstoupit, jak hodně si vážíme pořízených dat a jak projektujeme jejich sdílení dalšími profesemiči partnery. Ujasnění si těchto otázek je základem k nalezení nejlepšího řešení, kterým může býtstejně dobře malý neznámý systém jako renomované, často využívané řešení pomocí velkého anákladného systému. To nezávisí na velikosti firmy. Jsou případy, kdy firma ”jednoho muže”potřebuje velký systém a naopak v prostředí firmy o desítkách zaměstnanců je velmi dobrýmřešením malý systém. Dnes se dá poměrně přesně vyčíslit i návratnost investice, ovšem jen zapředpokladu ujasněné vize firmy, která dané technologie nasazuje.Uplatňování CAD technologií v českém průmyslu je relativně na vysoké úrovni, ale výběrsystému v silně konkurenčním prostředí má řadu negativních rysů. Obecně se role výběrupřeceňuje a mnohdy (dokonce velmi často) trvá takový výběr příliš dlouho. U větších zakázek jdeaž o rozhodování v čase měřitelném na roky a může jít i o zvraty rozhodnutí na poslední chvíli sevšemi znaky korupčního chování. Dokonce by se dalo mluvit o chronickém výběrovém řízení, naněmž vyplýtvá nejlepší síly jak ten, kdo vybírá, tak ten, kdo nabízí řešení. Chronické výběrovéřízení je často projevem nejasností ve strategii firmy, která neví, co potřebuje, kam směřujea do tohoto neujasněného postoje vnáší další riziko výběrem drahého řešení. Překvapuje, jaknízkou roli ve výběrovém řízení hraje kvalita odborného zázemí firmy, od níž se řešení kupuje.Právě toto partnerství bude nepochybně klíčové při řešení obtíží. Ale to je bohužel jen dalšíprojev neúcty k lidskému kapitálu.12.5 ZávěrNávštěvníci velkých výstav, jako je Invex apod., jistě zaznamenali výrazný odklon od prezentaceCAD systémů. Zanikla řada firem, které se na trhu CAD systémů pohybovaly a často se chovalyokázale až marnotratně. Dá se říci, že jde o návrat k normálnímu stavu. Na druhou stranuse jasně ukazuje, že podpora jednotlivce, tedy konstruktéra či technologa, není to, co vyřešíproblémy technické přípravy výroby. Větší váhu získává podpora celých týmů a možnost řízeníprojektů s uplatněním simultánních principů. Cílem je razantní zkrácení doby od prvotníhonápadu k uvedení výrobku na trh. Cestou je koordinovaný souběh (paralelismus) řady činností,což kontrastuje s klasickým inženýrstvím, které bylo a je sekvenční. Dnes již nejde jen o návrha výrobu technického systému, ale i o marketing, údržbu a likvidaci. Proto se na trhu objevilysystémy (raději řešení, neboť nejde o prodej „krabicového programového vybavení), kteréoznačujeme jako PLM - Product Lifecycle Management, tedy správa životního cyklu výrobku.Při uplatnění CAD systémů je proto vhodné se ptát, zda vybrané řešení bude podporovatdalší úroveň podpory technické práce, kterou představují PLM řešení. Cíl PLM je jednoduchý,snahou je, aby správná data byla ve správný čas na správném místě.89


12.6 Kontrolní otázky12.1 Jak v CAD systému určíte kružnici opsanou trojúhelníku?12.2 Uveďte příklady a charakteristiky malých, středních a velkých CAD systémů!12.3 Vysvětlete pojem PLM!90


Literatura[1] Bär, G.: Geometrie. Eine Einführung in die analytische und konstruktive Geometrie. Stuttgart,Teubner 1996.[2] Barnhill, R.E. (Ed.): Geometry processing for design and manufacturing. Philadelphia,SIAM 1992.[3] de Berg, M. – van Kreveld, M. – Overmars, M. – Schwarzkopf, O.: Computational geometry.Alhoriths and applications. Berlin, Springer Verlag 1997.[4] Bohne, E. – Klix, W.D.: Geometrie – Grundlagen für Anwendungen. Leipzig, Fachbuchverlag1995[5] Cox, D. – Little, J. – O’Shea, D.: Ideals, Varieties, and Algorithms. New York, Springer-Verlag 1992.[6] Černá,R. a kol.: Základy numerické matematiky a programování. Praha, SNTL 1987.[7] Falcidieno, B. – Herman, I. – Pienova, C. (Eds.): Computer graphics and mathematics.Berlin, Springer Verlag 1992.[8] Farin, G. – Hagen, H. – Noltemeier, H. (Eds.): Geometric modelling. Wien, Springer Verlag1993.[9] Granát, L. – Sechovský, H.: Počítačová grafika. Praha, SNTL 1980[10] Hosaka, M.: Modeling of curves and surfaces in CAD/CAM. Berlin, Springer Verlag 1992.[11] Ježek, F.: Datové struktury a algoritmy pro konstruování pomocí počítače. [Kandidátskádisertační práce.] Praha, FEL ČVUT 1985.[12] Ježek, F.: Geometrické a počítačové <strong>modelování</strong>. Pomocný učební text. Plzeň, ZČU 1997.[13] van Kreveld, M. (Ed.): Algorithmic foundations of geographic information systems. Berlin,Springer Verlag 1997.[14] Lyche, T. – Schumaker, L.L.: Mathematical methods in computer aided geometric design.Boston, Academic Press 1989.[15] Michelli, Ch.A.: Mathematical aspects of geometric modeling. Philadelphia, SIAM 1995.91


[16] Piegl, L. – Tiller, W.: The NURBS book. Berlin, Springer Verlag 1997.[17] Riesler, J.J.: Mathematical methods dor CAD. Cambridge, Cambridge Univerrsity Press1992.[18] Rogers, D.F. – Adams, J.A.: Mathematical elements for computer graphics. New York,McGraw-Hill 1990.[19] Strasser, W. – Klein, R. – Rau, R. (Eds.): Geometric modeling: Teory and practice. Berlin,Springer Verlag 1997.[20] Taylor, D.L.: Computer-Aided Design. Reading, Addison-Wesley 1992.[21] Watt, A.: 3D computer graphics. Wokingham, Addison Westley 1993.[22] Žára, J. – Beneš, B. – Felkel, P.: Moderní počítačová grafika. Praha, Computer Press 1998.[23] Žára, J. a kol.: Počítačová grafika – principy a algoritmy. Praha, Grada 1992.92

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!