Kurbo de Bézier

En la matematika subkorpo de cifereca analitiko **kurbo de Beziero** (ang. *Bézier curve*) estas parametra kurbo grava en komputila grafiko. Ĝeneraligoj de Bézier kurboj al pli altaj dimensioj estas nomata kiel surfaco de Bézier (ang. *Bézier surface*).

Kurbo de Bézier estis larĝe publikigita en 1962 de la franca inĝeniero Pierre Bézier, kiu uzis ilin por desajni karoseriojn de aŭtoj. La kurboj estis unue ellaboritaj en 1959 de Paul de Casteljau per la algoritmo de Casteljau, kio estas ciferece stabila metodo al evaluado de kurboj de Bézier.

## Linearaj kurboj de Bézier 
Por donitaj punktoj **P**0 kaj **P**1, lineara Kurbo de Bézier estas rekta streko inter ĉi tiuj du punktoj. La kurbo estas donita per

:\mathbf{B}(t)=(1-t)\mathbf{P}_0 + t\mathbf{P}_1 \mbox{ , } t \in [0,1]

## Kvadrataj kurboj de Bézier 
Kvadrata kurbo de Bézier estas la vojo spurata per la funkcio **B**(*t*), por donitaj punktoj **P**0, **P**1, kaj **P**2:

: \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].

TTF-tiparoj uzas laŭpartajn interpolajn funkciojn de Bézier komponitajn el la kvadrataj kurboj de Bézier.

## Kubaj kurboj de Bézier 
eta|Kuba kurbo de Bézier

Kvar punktoj **P**0, **P**1, **P**2 kaj **P**3 en la ebeno aŭ en tri-dimensia spaco difinas kuban kurbon de Bézier.

La kurbo startas je **P**0 irante direkte al **P**1 kaj alvenas je **P**3 devenante de la direkto de **P**2. Ĝenerale, ĝi ne trapasas tra **P**1 aŭ **P**2; ĉi tiuj punktoj estas nur por provizi direktojn. La distanco inter **P**0 kaj **P**1 difinas kiel longe la kurbo iras direkte al **P**1 antaŭ turno al **P**3.

La parametra formo de la kurbo estas:

: \mathbf{B}(t)=\mathbf{P}_0(1-t)^3+3\mathbf{P}_1t(1-t)^2+3\mathbf{P}_2t^2(1-t)+\mathbf{P}_3t^3 \mbox{ , } t \in [0,1].

Iuj bildo-prilaboraj sistemoj, inter ili PostSkripto kaj GIMP, uzas laŭpartajn interpolajn funkciojn de Bézier komponitajn el la kubaj kurboj de Bézier por desegnado de malrektaj linioj.

## Kurboj de Bézier de ajna grado 
La kurbo de Bézier de grado *n* povas esti donita sekve. Estu donitaj punktoj **P**0, **P**1,..., **P**n. Tiam la kurbo de Bézier estas

: \mathbf{B}(t)=\sum_{i=0}^n {n\choose i}\mathbf{P}_i(1-t)^{n-i}t^i =\mathbf{P}_0(1-t)^n+{n\choose 1}\mathbf{P}_1(1-t)^{n-1}t+\cdots+\mathbf{P}_nt^n \mbox{ , } t \in [0,1]

kie {n \choose i} estas binoma koeficiento

:  {n \choose i} = \frac{n!}{i!(n-i)!}

Ekzemple, por *n=5*:

:\mathbf{B}(t)=\mathbf{P}_0(1-t)^5+5\mathbf{P}_1t(1-t)^4+10\mathbf{P}_2t^2(1-t)^3+10\mathbf{P}_3t^3(1-t)^2+5\mathbf{P}_4t^4(1-t)+\mathbf{P}_5t^5 \mbox{ , } t \in [0,1]

La formulo povas esti skribita rikure per la samaj formuloj de grado *n-1*.
Estu \mathbf{B}_{\mathbf{P}_0\mathbf{P}_1\ldots\mathbf{P}_n} kurbo de Bézier de punktoj **P**0, **P**1,..., **P**n. Tiam

:\mathbf{B}(t) = \mathbf{B}_{\mathbf{P}_0\mathbf{P}_1\ldots\mathbf{P}_n}(t) = (1-t)\mathbf{B}_{\mathbf{P}_0\mathbf{P}_1\ldots\mathbf{P}_{n-1}}(t) + t\mathbf{B}_{\mathbf{P}_1\mathbf{P}_2\ldots\mathbf{P}_n}(t)

Tiel, kurbo de Bézier de grado *n* estas lineara interpolo inter du kurboj de Bézier de grado *n-1*.

## Notoj 
Estu

:\mathbf{B}(t) = \sum_{i=0}^n \mathbf{P}_i\mathbf{b}_{i,n}(t),\quad t\in[0,1]

la polinomoj

:\mathbf{b}_{i,n}(t) = {n\choose i} t^i (1-t)^{n-i},\quad i=0,\ldots n

estas la bazaj polinomoj de Bernstein de grado *n*.

La punktoj **P***i* estas la *apogaj punktoj* por la kurbo. La plurlatero formita per trakonektanta la apogaj punktoj
per rektaj strekoj, startante de **P**0 kaj finante kun **P***n*, kio estas, la konveksa koverto de la **P***i* , estas nomata kiel la *plurlatero de Bézier*, kaj la plurlatero de Bézier enhavas la kurbon de Bézier.

* La kurbo komenciĝas je **P**0 kaj finiĝas je **P**n; ĉi tio estas tiel la *fina punkta interpolo*.
* La kurbo estas rekto se kaj nur se ĉiuj apogaj punktoj kuŝas sur la kurbo, simile, la kurbo estas rekto se kaj nur se la apogaj punktoj estas samrektaj.
* La starto kaj fino de la kurbo estas tanĝantaj respektive al la unua kaj lasta sekcioj de la plurlatero.
* La kurbo povas esti fendita je ĉiu punkto en 2 subkurbojn, aŭ en arbitre multajn subkurbojn, ankaŭ ĉiu el kiuj estas kurbo de Bézier.
* Nek cirklo nek arko de cirklo povas esti akurate prezentita kiel kurbo de Bézier. Tamen, *n≥2* kubaj kurboj de Bézier povas proksimumigi cirklon. Por *n=4*, eblas atingi la radiusan eraron pli malgrandan ol 1/1000 de la radiuso.
* La kurbo je fiksita flanka orta ŝovo de donita kurbo de Bézier (simile kiel unu relo de fervoja trako relative al la alia) ne povas esti akurate prezentita kiel kurbo de Bézier en ĝenerala okazo. Tamen, eblas proksimumigaj manieroj kutime adekvataj por praktikaj celoj.

* Ĉiu kurbo de Bézier de grado *n* estas ankaŭ kurbo de Bézier de grado *m* por ĉiu *m>n*. Se estas kurbo de Bézier de grado *n* donita per punktoj **P**0, ..., **P***n* do ĝi estas ekvivalenta (eĉ je parametriogo) al la kurbo de grado *n+1* donita per punktoj **P**'0, ..., **P**'*n+1*, kie \mathbf P'_k=\tfrac{k}{n+1}\mathbf P_{k-1}+\left(1-\tfrac{k}{n+1}\right)\mathbf P_k.

## Konstruado de kurboj de Bézier 
### Linearaj kurboj 
La *t* en la funkcio por lineara kurbo de Bézier povas esti konsiderata kiel priskribanta kiel malproksime **B**(*t*) estas de **P**0 al **P**1. Ekzemple kiam *t=0.25*, **B**(*t*) estas je unu kvarono de la vojo de punkto **P**0 al **P**1. Kiam *t* varias de 0 al 1, **B**(*t*) priskribas rektan linion de **P**0 al **P**1.

### Kvadrataj kurboj 
eta|300px|Konstruado de kvadrata kurbo de Bézier

Por kvadrata kurboj de Bézier unu povas konstrui interajn punktojn **Q**0 kaj **Q**1 tiaj ke kiam *t* varias de 0 al 1:

* Punkto **Q**0 varias de **P**0 al **P**1 kaj priskribas linearan kurbon de Bézier.
* Punkto **Q**1 varias de **P**1 al **P**2 kaj priskribas linearan kurbon de Bézier.
* Punkto **B**(*t*) varias de **Q**0 al **Q**1 kaj priskribas kvadratan kurbon de Bézier.

### Kubaj kurboj 
eta|300px|Konstruado de kuba kurbo de Bézier

Por kurboj de pli alta ordo oni bezonas respektive pli multajn interajn punktojn. Por kubaj kurboj oni povas konstrui interajn punktojn **Q**0, **Q**1 kaj **Q**2 kiuj priskribas linearajn kurbojn de Bézier, kaj punktojn **R**0 kaj **R**1 kiuj priskribas kvadratajn kurbojn de Bézier.

### Kurboj de ordo 4 
eta|300px|Konstruado de kurbo de Bézier de ordo 4

Por kvar-ordaj kurboj oni povas konstrui interajn punktojn **Q**0, **Q**1, **Q**2, **Q**3 kiuj priskribas linearajn kurbojn de Bézier; punktojn **R**0, **R**1, **R**2 kiuj priskribas kvadratajn kurbojn de Bézier; punktojn **S**0, **S**1 kiuj priskribas kubajn kurbojn de Bézier.

### Animacioj 
## Uzoj en komputila grafiko 
Kurboj de Bézier estas multe uzitaj en komputila grafiko kiel modelaj glataj kurboj. Pro tio ke la kurbo estas plene enhavata en la konveksa koverto de ĝiaj apogaj punktoj, la punktoj povas esti grafike elmontritaj kaj estas oportune manipuli la kurbon intuicie. Afinaj transformoj kiel movo, skaligo kaj turnado povas esti aplikitaj al la kurbo per aplikado al la ĉiuj apogaj punktoj de la kurbo.

La plej grava kurboj de Bézier estas kvadrataj kaj kubaj. Kurboj de la pli altaj gradaj estas pli multekostaj en komputado. Se pli komplikaj formoj estas bezonataj, la tuta kurbo estas disdividata je partoj, obeantaj certajn kondiĉoj je randoj por glateco. Ĉi tio estas tiel speco de laŭparta interpola funkcio - laŭparta interpola funkcio de Bézier.

## Racionalaj kurboj de Bézier 
[eta|Kvadrataj racionalaj kurboj de Bézier, precize prezentantaj partojn de [konikoj]]

Iuj kurboj kiuj aspektas kiel simpla, ekzemple cirklo, ne povas esti priskribitaj kiel kurbo de Bézier aŭ popeca kurbo de Bézier (kvankam en praktiko la diferenco estas malgranda kaj povas esti tolerebla). Por priskribi iujn el ĉi tiuj aliaj kurboj, oni bezonas aldonajn gradojn de libereco.

La racionala kurbo de Bézier aldonas pezojn kiuj povas esti ĝustigitaj. La numeratoro estas pezita kurbo de Bézier kaj la denominatoro estas pezita sumo de polinomoj de Bernstein.

Por donitaj *n+1* apogaj punktoj **P***i*, la racionala kurbo de Bézier estas

:
\mathbf{B}(t) =
\frac{
\sum_{i=0}^n b_{i,n}(t) \mathbf{P}_{i}w_i
}
{
\sum_{i=0}^n b_{i,n}(t) w_i
}

kio estas

:
\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
}

La racionala kurbo de Bézier povas precize prezenti konikojn.

## Vidu ankaŭ 
* Algoritmo de de Casteljau
* Laŭparta interpola funkcio
* Laŭparta interpola funkcio de Bézier
* B-laŭparta interpola funkcio
* Surfaco de Bézier
* Triangulo de Bézier
* Polinomo de Lagrange

## Eksteraj ligiloj 
* Paul Bourke: *kurboj de Bézier*, http://astronomy.swin.edu.au/~pbourke/curves/bezier/ 
* D-r Tomas Sederberg, BYU *kurboj de Bézier*, http://www.tsplines.com/resources/class_notes/Bezier_curves.pdf 
* Interaga apleto por kurboj de Bézier 
* Apleto por kurboj de Bézier de 3-a ordo
* Apleto
* Apletoj de malsamaj laŭpartaj interpolaj funkcioj
* Enkonduko al laŭpartaj interpolaj funkcioj
* Kuba laŭparta interpola funkcia biblioteko de Don Lancaster

Kategorio:Komputila grafiko
Kategorio:Kurboj