Křivky pana Béziera

Václav Peca

Grafický design je dnes více než jindy spjat s vektorovou grafikou. Chápu, že použití vektorového editoru nemusí vždy být nezbytné, například při navrhování webových stránek, ale rozhodně je to pohodlné a dává to smysl.

Mnoho levných grafických studií nabízí například vytvoření loga v určité velikosti, což je z principu hloupost. Logo musí být nakreslené v křivkách, nejen proto, abyste je mohli zvětšovat. Některé technologické postupy, na které při tvorbě reklamy lze narazit, vyžadují vektorové podklady (například řezání na plotteru, výroba světelných poutačů atd.).

Veškerá grafika, kterou kolem sebe dnes vidíme (až na fotografie), má vektorový základ.

Zatímco ve vektorové grafice si hrajeme s křivkami a tvary, u rastrové grafiky musíme mít na mysli, že pořád operujeme s jakousi množinou obarvených bodů, které iluzi tvarů a křivek pouze vyvolávají. Mimo to je vektorová grafika pro člověka intuitivnější, protože práce s ní je jako práce s koláží - na plátně máme položené objekty, s nimiž můžeme hýbat a seskupovat je, jak chceme.

Abychom mohli využít plný potenciál vektorové grafiky, měli bychom rozumět jejímu chování. To chování má pevný matematický základ a světe div se, je jednodušší, než si myslíte.

U zrodu hladké křivky

Když stroje v továrnách začaly být ovládány počítači, vznikla potřeba pro systém, který by umožnil nadefinovat jakoukoliv křivku, kterou si umíte představit. Na stoly inženýrů velkých firem se vrátil padesát let starý Bernsteinův polynom, který dal vzniknout dodnes používané Bézierově křivce.

K prvním praktickým využitím Bézierovy křivky došlo nezávisle ve dvou francouzských automobilkách, roku 1959 matematikem Paulem de Casteljau v Citroënu a o tři roky poté inženýrem Pierre Bézierem v Renaultu. Právě po něm slavná křivka nese název.

Renault Dauphine bylo jedno z prvních aut, pro jehož navržení byla použita Bézierova křivka.

A teď trochu matematiky

Předem se omlouvám, že následující část článku bude mít spíš učebnicový charakter. Asi ji nepochopíte, pokud nemáte základní matematické znalosti. Pokusím se přesto vysvětlit podstatu Bézierovy křivky co nejjednodušeji.

Bézierova křivka je dána několika body1 s definovaným pořadím. Počet bodů určuje řád křivky. Křivka daná třemi body je kvadratická, čtyřmi body kubická, pěti body kvartická atd. Řád křivky odpovídá řádu rovnice, jíž vypočítáme jakýkoliv bod náležící křivce. Zároveň je zřejmé, že čím vyšší počet bodů křivku definuje, tím déle trvá její výpočet a vykreslení.

Zleva: křivka druhého, třetího a čtvrtého řádu.

Rovnice pro výpočet bodů, které náleží křivce libovolného řádu, obsahuje jeden parametr. Je to proměnná, za kterou dosazujeme čísla od 0 do 1. Při dosazení jednoho čísla dostaneme jeden bod náležící křivce. Pokud bychom dosadili všechna reálná čísla v tomto intervalu, dostaneme nekonečno bodů, tedy dokonale hladkou spojitou křivku. Reálně nám však stačí dosadit tolik hodnot, jak přesně potřebujeme křivku vykreslit, pokud tedy vykreslujeme křivku na obrazovce s určitým rozlišením, stačí dosadit přibližně tolik hodnot, kolik pixelů bude křivku na obrazovce tvořit.

Pojďme se však místo výpočtu podívat na to, jak najít body náležící křivce grafickou konstrukcí. Mějme Bézierovu kubiku, tedy křivku danou čtyřmi body. Chceme vypočítat bod náležící této křivce s parametrem 0,2. Na úsečce mezi prvním a druhým bodem najdeme bod vzdálený od prvního bodu pětinu velikosti této úsečky. To stejné uděláme u dalších dvou úseček.

Teď máme o jeden méně bodů, než na začátku. Aplikujeme stejný postup, na obou úsečkách hledáme další body.

Takto postupujeme, dokud se nedostaneme k poslednímu bodu, jenž je bodem náležícím křivce.

Pokud bychom postup zopakovali pro parametry 0,4; 0,6 a 0,8, dostali bychom velice zjednodušený tvar křivky.

Křivka jako nástroj

Bézierova křivka byla vynalezena jako nástroj, který má umožnit designérovi užívat nestandardně zakřivené linie a plochy. Její výhodou je, že její chování se dá pochopit i bez znalosti matematické podstaty, kterou jsem vysvětlil v předchozí části.

Jedna z vlastností Bézierovy křivky je ta, že spojnice prvního a druhého definujícího bodu (a stejně tak předposledního a posledního) je tečna v prvním – respektive posledním – bodě. Této vlastnosti se využívá v grafických editorech. První a druhý bod je spojen a tvoří táhlo. Uživatel editoru tedy pohybuje dvěma táhly–tečnami a intuitivně chápe, jak je má nastavit tak, aby křivka vypadala podle jeho představ.

Jak ale vytvořit složitější křivku, která má několik záhybů, nebo dokonce ostré hrany?

Jednoduše skládáním Bézierových kubik za sebe. Pokud jsou tečny vedle sebe ležících křivek rovnoběžné, pak je spoj hladký. V opačném případě (když táhla nejsou rovnoběžná) má cesta v místě kotevního bodu ostrou hranu.

Při uzavření cesty dostaneme plochu, kterou můžeme vybarvit. Přesně tak jsou vytvořena všechna loga, písmena, ikony. Mají společný základ, a to barevné plochy tvořené cestami složenými z Bézierových křivek.

Minuska písmene A fontu Neue Haas Unica po převedení na křivky. Každý úsek mezi dvěma čtvercovými body je jedna Bézierova kubika.

Jsem si jist, že tento systém, který se používá už půl století, bude standardem i za dalších padesát let. Je geniálně jednoduchý a zároveň nemá z hlediska využitelnosti žádná omezení.

Rád bych tento článek zakončil slovy, že ovládat Bézierovy křivky v grafickém editoru je snadné a zvládne to i začátečník. Ale skutečnost je jiná. Jako každá jiná činnost i vektorové kreslení vyžaduje desítky a stovky hodin tréninku. Rozumět neznamená umět.

Mějte se, jdu si kreslit…

1

Minimální počet bodů je 2, ale v tomto případě je Bézierova křivka pouze úsečkou. Smysl dostává od tří bodů výše.

Archív