Kurbo de Bézier

El Vikipedio, la libera enciklopedio
Saltu al: navigado, serĉo

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[redakti | redakti fonton]

Por donitaj punktoj P0 kaj P1, 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[redakti | redakti fonton]

Kvadrata kurbo de Bézier estas la vojo spurata per la funkcio B(t), por donitaj punktoj P0, P1, kaj P2:

\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[redakti | redakti fonton]

Kuba kurbo de Bézier

Kvar punktoj P0, P1, P2 kaj P3 en la ebeno aŭ en tri-dimensia spaco difinas kuban kurbon de Bézier.

La kurbo startas je P0 irante direkte al P1 kaj alvenas je P3 devenante de la direkto de P2. Ĝenerale, ĝi ne trapasas tra P1P2; ĉi tiuj punktoj estas nur por provizi direktojn. La distanco inter P0 kaj P1 difinas kiel longe la kurbo iras direkte al P1 antaŭ turno al P3.

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[redakti | redakti fonton]

La kurbo de Bézier de grado n povas esti donita sekve. Estu donitaj punktoj P0, P1,..., Pn. 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 P0, P1,..., Pn. 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[redakti | redakti fonton]

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 Pi estas la apogaj punktoj por la kurbo. La plurlatero formita per trakonektanta la apogaj punktoj per rektaj strekoj, startante de P0 kaj finante kun Pn, kio estas, la konveksa koverto de la Pi , 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 P0 kaj finiĝas je Pn; ĉ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 P0, ..., Pn 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[redakti | redakti fonton]

Linearaj kurboj[redakti | redakti fonton]

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

Kvadrataj kurboj[redakti | redakti fonton]

Konstruado de kvadrata kurbo de Bézier

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

  • Punkto Q0 varias de P0 al P1 kaj priskribas linearan kurbon de Bézier.
  • Punkto Q1 varias de P1 al P2 kaj priskribas linearan kurbon de Bézier.
  • Punkto B(t) varias de Q0 al Q1 kaj priskribas kvadratan kurbon de Bézier.


Kubaj kurboj[redakti | redakti fonton]

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 Q0, Q1 kaj Q2 kiuj priskribas linearajn kurbojn de Bézier, kaj punktojn R0 kaj R1 kiuj priskribas kvadratajn kurbojn de Bézier.

Kurboj de ordo 4[redakti | redakti fonton]

Konstruado de kurbo de Bézier de ordo 4

Por kvar-ordaj kurboj oni povas konstrui interajn punktojn Q0, Q1, Q2, Q3 kiuj priskribas linearajn kurbojn de Bézier; punktojn R0, R1, R2 kiuj priskribas kvadratajn kurbojn de Bézier; punktojn S0, S1 kiuj priskribas kubajn kurbojn de Bézier.

Animacioj[redakti | redakti fonton]

Animacio de lineara kurbo de Bézier
Animacio de kvadrata kurbo de Bézier
Animacio de kuba kurbo de Bézier
Animacio de kurbo de Bézier de ordo 4
Animacio de kurbo de Bézier de ordo 5

Uzoj en komputila grafiko[redakti | redakti fonton]

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[redakti | redakti fonton]

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 Pi, 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ŭ[redakti | redakti fonton]

Eksteraj ligiloj[redakti | redakti fonton]