Bézierova krivulja
Bézierova krivulja je parametrična krivulja važna u području matematičke numeričke analize osobito se primjenjuje u računalnoj grafici i srodnim djelatnostima.
Bézierove krivulje u višim dimenzijama su Bézierove površine. Unutar njih je pak Bézierov trokut primjer za sebe.
Unutar računalne grafike, a posebno u vektorskoj grafici, Bézierove krivulje su važan alat, kojim se služi većina računalnih programa pri oblikovanju jasnih glatkih krivulja, koje se mogu beskonačno skalirati. Svi programi za crtanje i uređivanje slika poput; Adobe Illustratora, Adobe Photoshopa, CorelDrawa služe se "Putanjama" ( engleski: "Paths"), a one su kombinacija Bézierovih krivulja. Bézierove krivulje su široko rasprostanjene i u programima za animaciju poput; Adobe Flasha, Adobe After Effectsa, i 3d maxa.
Povijest
Bézierove krivulje je učinio svjetski poznatima, francuski inženjer Pierre Etienne Bézier, koji je 1962. godine za potrebe tvrtke Renault, razvio metodu opisa krivulja, za računalno oblikovanje automobila. Ove krivulje je otkrio 1959. Paul de Casteljau uz pomoć de Casteljauvovog algoritma, numerički stabilnom metodom za izračunavanje Bézierovih krivulja.
Analiza primjera
Linearne Bézierove krivulje
Bezierova krivulja 1 stupnja:
Ako su nam dane dvije nadzorne točke P0 i P1, Linearna Bezierova krivulja je jednostavna ravna crta između te dvije točke.
Krivulja nam je dana pomoću:[math]\displaystyle{ \mathbf{B}(t)=\mathbf{P}_0 + t(\mathbf{P}_1-\mathbf{P}_0)=(1-t)\mathbf{P}_0 + t\mathbf{P}_1 \mbox{ , } t \in [0,1] }[/math] i jednaka je linearnoj interpolaciji.
Animacija linearne Bézierove krivulje |
Kvadratne Bézierove krivulje
Bézierova krivulja 2 stupnja:
Kvadratna Bézierova krivulja je putanja praćena funkcijom B(t), nadzorne točke su nam P0, P1, i P2,
- [math]\displaystyle{ \mathbf{B}(t) = (1 - t)^{2}\mathbf{P}_0 + 2t(1 - t)\mathbf{P}_1 + t^{2}\mathbf{P}_2 \mbox{ , } t \in [0,1]. }[/math]
Kvadratna Bézierova krivulja je i dio parabole.
TrueType fontovi upotrebljavaju Bézierov krivuljar koji je sastavljen od kvadratnih Bézierovih krivulja.
Konstrukcija Kvadratne Bézierove krivulje | Animacija Kvadratne Bézierove krivulje |
Kubične Bézierove krivulje
Bézierova krivulja 3 stupnja:
Četiri nadzorne točke P0, P1, P2 i P3 u ravnini ili trodimenzionalnom prostoru definiraju kubičnu Bézierovu krivulju.
Krivulja počinje iz točke P0 ide prema točki P1 i dospijeva do P3 iz smjera P2. Obično, ne prolazi kroz točke P1 i P2; ove točke su jedino za određivanje pravca. Udaljenost između P0 i P1 određuje »koliko dugo« ide krivulja prema točki P2 prije nego skrene prema točki P3.
Parametrički oblik oblik krivulje je:[math]\displaystyle{ \mathbf{B}(t)=(1-t)^3\mathbf{P}_0+3t(1-t)^2\mathbf{P}_1+3t^2(1-t)\mathbf{P}_2+t^3\mathbf{P}_3 \mbox{ , } t \in [0,1]. }[/math]
Suvremeni računalni grafički sustavi i jezici poput PostScript-a, Asymptote (vektorski grafički jezik) i Metafont-a primjenjuju Bézierov krivuljar sastavljen od kubičnih Bézierovih krivulja za iscrtavanje zakrivljenih oblika.
Konstrukcija Kubične Bézierove krivulje | Animacija Kubične Bézierove krivulje |
Racionalne Bézierove krivulje
Neke krivulje, koje izgledaju jednostavne, kao što je kružnica,ne možemo opisati s Bézierovom krivuljom ili pak dijelom Bézierove krivulje. U praksi je ta razlika toliko mala da je dopuštamo. Za opis takvih i drugih krivulja trebamo dodatne slobodne mjere.
Racionalna Bézierova krivulja ima težišta koja moramo prilagoditi. Brojač je ponderiran Bernsteinov oblik Bézierove krivulje, nazivnik je uteženi zbroj Bernesteinovih polinoma.
Ako imamo n+1 nadzorne točkePi, tada racionalnu Bézierovu krivulju možemo opisati sa:
- [math]\displaystyle{ \mathbf{B}(t) =\frac{\sum_{i=0}^n b_{i,n}(t) \mathbf{P}_{i}w_i} {\sum_{i=0}^nb_{i,n}(t) w_i} \; , }[/math]
ili jednostavno:
- [math]\displaystyle{ \mathbf{B}(t) =\frac{\sum_{i=0}^n {n \choose i} t^i(1-t)^{n-i}\mathbf{P}_{i}w_i} {\sum_{i=0}^n {n \choose i} t^i(1-t)^{n-i}w_i}. }[/math]
Definicija
Vanjske poveznice
- Živi matematički Bézierovi appleti
- Živi primjeri matematičkih Bézierovih appleta za različite tipove krivuljara(splinove), JAVA programiranje krivuljara(splinove)
- Interaktivni uvod u krivuljare(splinove)
- Don Lancaster's Cubic Spline Library opisuje kako aproksimirati kružnicu (ili kružni luk, ili hiperbolu) pomoću Bézierove krivulje.