Bezierova křivka

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 6. května 2019; kontroly vyžadují 26 úprav .

Bézierovy křivky  jsou typy křivek, které v 60. letech 20. století nezávisle navrhli Pierre Bezier z automobilky Renault a Paul de Casteljo ze společnosti Citroen , kde byly použity při navrhování karoserií automobilů.

Přestože de Casteljouův objev byl učiněn o něco dříve než Bézierův (1959), jeho výzkum nebyl publikován a utajován společností do konce 60. let.

Bézierova křivka je speciální případ Bernsteinových polynomů , které popsal ruský matematik Sergej Natanovič Bernstein v roce 1912.

Křivky byly poprvé představeny široké veřejnosti v roce 1962 francouzským inženýrem Pierrem Bézierem , který je vyvinul nezávisle na de Casteljotovi a použil je pro počítačově podporovaný návrh karoserií automobilů . Křivky byly pojmenovány po Béziersovi a rekurzivní metoda, kterou vyvinul pro definování křivek (de Casteljův algoritmus), byla pojmenována po de Casteljovi .

Následně se tento objev stal jedním z nejdůležitějších nástrojů systémů počítačově podporovaného navrhování a programů počítačové grafiky .

Definice

Nechť posloupnost řídicích bodů , kde a pro , je uvedena v dimenzním prostoru nad .

Pak množina bodů se souřadnicemi , parametricky daná výrazy

pro kde pro , _

nazývaná Bezierova křivka .

Polynom stupně vzhledem k parametru se nazývá základní funkce (odpovídající řídicímu bodu ) Bézierovy křivky nebo Bernsteinův polynom .

Zde  je počet kombinací od do .

Poznámky

  1. Bézierova křivka odpovídající oběma a je bod .
  2. Bézierova křivka odpovídající páru , tedy at , je (lineárně) parametrizovaný segment spojující bod (at ) s bodem (at ).
  3. Bezierova křivka v libovolném pořadí obsahuje bod (toto je obrázek parametru ) a bod (toto je obrázek parametru ).
  4. Bézierova křivka (v obecném případě, pokud se nezdegenerovala do bodu ) je orientovatelná, protože je obrazem orientovaného segmentu . Posloupnosti řídicích bodů odpovídají Bézierovým křivkám, které se shodují jako sady bodů, ale mají (obecně) opačnou orientaci.
  5. Bézierovy křivky odpovídající sekvencím kontrolních bodů a neshodují se v .
  6. Pokud se změníte , pak pouze .

Typy Bézierových křivek

Lineární křivky

Když n = 1, je křivka úsečkou, referenční body P 0 a P 1 určují její začátek a konec. Křivka je dána rovnicí:

.

Kvadratické křivky

Kvadratická Bezierova křivka (n = 2) je definována třemi kotevními body: P 0 , P 1 a P 2 .

.

Kvadratické Bézierovy křivky v spline se používají k popisu tvaru znaků v písmech TrueType a souborech SWF .

Kubické křivky

V parametrickém tvaru je kubická Bezierova křivka (n = 3) popsána následující rovnicí:

.

Čtyři referenční body P 0 , P 1 , P 2 a P 3 dané ve 2- nebo 3-rozměrném prostoru určují tvar křivky.

Čára vychází z bodu P 0 , směřuje k P 1 a končí v bodě P 3 , přibližuje se k němu ze strany P 2 . To znamená, že křivka neprochází body P 1 a P 2 , používají se k označení jejího směru. Délka segmentu mezi P 0 a P 1 určuje, jak brzy se křivka změní na P 3 .

V maticové formě se kubická Bézierova křivka zapisuje takto:

,

kde se nazývá základní Bezierova matice:

Moderní grafické systémy a formáty jako PostScript (stejně jako na něm založené formáty Adobe Illustrator a Portable Document Format (PDF) , Scalable Vector Graphics (SVG) [1] , Metafont , CorelDraw a GIMP používají Bézierovy křivky k zobrazení zakřivených tvary., složené z kubických křivek.

Budování Bézierových křivek

Lineární křivky

Parametr t ve funkci popisující lineární případ Bézierovy křivky přesně určuje, kde se ve vzdálenosti od P 0 do P 1 B ( t ) nachází . Například při t = 0,25 odpovídá hodnota funkce B ( t ) čtvrtině vzdálenosti mezi body P 0 a P 1 . Parametr t se mění z 0 na 1 a B ( t ) popisuje úsečku mezi body P 0 a P 1 .

Kvadratické křivky

Pro konstrukci kvadratických Bezierových křivek je nutné vybrat dva mezilehlé body Q 0 a Q 1 z podmínky, že parametr t se mění od 0 do 1:

Křivky vyšších stupňů

Pro konstrukci křivek vyšších řádů je tedy zapotřebí více mezilehlých bodů. Pro kubickou křivku jsou to mezilehlé body Q 0 , Q 1 a Q 2 , které popisují lineární křivky, stejně jako body R 0 a R 1 , které popisují kvadratické křivky: jednodušší rovnice .

Pro křivky čtvrtého stupně to budou body Q 0 , Q 1 , Q 2 a Q 3 popisující lineární křivky, R 0 , R 1 a R 2 , které popisují kvadratické křivky, a také body S 0 a S 1 popisující kubické Bezierovy křivky:

Vlastnosti Bézierovy křivky

Aplikace v počítačové grafice

Díky snadnému nastavení a manipulaci našly Bézierovy křivky široké uplatnění v počítačové grafice pro modelování hladkých čar. Křivka leží zcela uvnitř konvexního trupu svých referenčních bodů. Tato vlastnost Bézierových křivek na jedné straně značně zjednodušuje hledání průsečíků křivek (pokud se konvexní trupy kotevních bodů neprotínají, pak se křivky samotné neprotínají) a na straně druhé umožňuje intuitivní ovládání parametrů křivky v grafickém rozhraní pomocí kotevních bodů. Kromě toho lze také provádět transformace afinních křivek ( posun , změna měřítka , rotace atd.) aplikací příslušných transformací na kotevní body.

Nejdůležitější jsou Bezierovy křivky druhého a třetího stupně (kvadratické a kubické). Křivky vyšších stupňů při zpracování vyžadují více výpočtů a pro praktické účely se používají méně často. Chcete-li vytvářet čáry se složitými tvary, lze jednotlivé Bézierovy křivky postupně vzájemně propojovat v Bézierově křivce . Aby byla zajištěna hladká linie na křižovatce dvou křivek, musí tři sousední kotevní body obou křivek ležet na stejné přímce. V programech pro vektorovou grafiku , jako je Adobe Illustrator nebo Inkscape , jsou takové fragmenty známé jako „cesty“ ( cesta ) a v 3DS Max a podobných programech pro 3D modelování se Bezierovy křivky nazývají „splines“.

Převod kvadratických Bézierových křivek na kubické

Kvadratická Bézierova křivka se souřadnicemi se převede na kubickou Bezierovou křivku se souřadnicemi .

Vzorkovací frekvence Bézierových křivek [2]

Vzorkovací frekvence je definována takto:

, to znamená, že každý další bod se musí lišit od předchozího o 1 (řekněme pixel). Navíc, když se zeptáte takto:

Prostřednictvím něj můžete vypočítat .

Pojďme vyřešit tuto rovnici pro Bézierovy křivky prvního řádu (lineární):

Zapišme rozdíl bodů pro jednu osu:

Vyjmeme ze závorek společné faktory:

Pojďme najít :

tímto způsobem můžete vypočítat vzorkovací frekvenci pro procházení určité osy Bézierovy křivky určitého řádu. Tzn., že potřebujete získat 16 takových rovnic pro Bézierovy křivky 1. až 16. řádu, vždy je to nastaveno po bodech, do výsledné rovnice bude stačit dosadit jejich souřadnice, aby se křivka obešla s minimální jednoznačnou úrovní diskretizace. .

Viz také

Poznámky

  1. World Wide Web Consortium ( W3C ). Scalable Vector Graphics (SVG) 1.1 (druhé vydání). Kapitola 8: Cesty  (anglicky) (16. srpna 2011). — Doporučení W3C. Datum přístupu: 21. května 2012. Archivováno z originálu 24. června 2012.
  2. Algoritmy: Bezierovy křivky . designermanuals.blogspot.com . Získáno 9. ledna 2021. Archivováno z originálu dne 12. ledna 2021.

Literatura

Odkazy