HOME OGGETTI 3D LIBRI CORSI TUTORIAL FORUM SHOP CONTATTI   LOGIN









Autore Topic: Curva Bézier simmetrica grado4  (Letto 1901 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

marcomasetti

  • Newbie
    ...sono qui da poco, il mio miglior amico è il pulsante RICERCA
  • *
  • Post: 183
Curva Bézier simmetrica grado4
« il: 23 Dicembre 2012, 01:38 »
La curva di Bézier del grado 4, con la poligonale di 5 punti, può risultare utile se la si semplifica rendendola simmetrica.
La formula generale in 2D risulta:
x=(1-t)^4*x1+4*t*(1-t)^3*x2+6*t^2*(1-t)^2*x3+4*t^3*(1-t)*x4+t^4*x5
y=(1-t)^4*y1+4*t*(1-t)^3*y2+6*t^2*(1-t)^2*y3+4*t^3*(1-t)*y4+t^4*y5
dove t variando da 0 a 1 descrive la curva.
Ponendo il punto P1 sull’origine si annullano i primi monomi.
Inserendo il punto finale P5 sull’asse x se ne annulla l’ordinata,
posta poi la lunghezza della corda pari a lb si ricava:
x=4*t*(1-t)^3*x2+6*t^2*(1-t)^2*x3+4*t^3*(1-t)*x4+t^4*lb
y=4*t*(1-t)^3*y2+6*t^2*(1-t)^2*y3+4*t^3*(1-t)*y4
I punti P2 e P4 definiscono le tangenti in P1 e P5: se la curva risulta simmetrica i vettori tangenti avranno la stessa ordinata con ascissa opposta. Il punto interno P3 dovrà poi cadere sull’asse di simmetria.
Se il vettore tangente in P1 ha la forma (tx,ty), la formula diventa:
x=4*t*(1-t)^3*tx+3*t^2*(1-t)^2*lb+4*t^3*(1-t)*(lb-tx)+t^4*lb
y=4*t*(1-t)^3*ty+6*t^2*(1-t)^2*y3+4*t^3*(1-t)*ty
Per analogia nello spazio, con vettore tangente (tx,ty,tz) , basta aggiungere la terza coordinata:
z=4*t*(1-t)^3*tz+6*t^2*(1-t)^2*z3+4*t^3*(1-t)*tz

Questa curva è interessante perché può assumere una forma a campana o ad occhiello, ma soprattutto perché permette di gestire in modo indipendente il suo punto di massimo rispetto l’inclinazione assunta dagli estremi.
L’ho applicata nella forma sghemba 3D per costruire la primitiva di un “muro” assolutamente irregolare, che non è possibile costruire con le forme predefinite. Infatti vengono connesse tra loro curve sghembe che generano superfici murarie curve. Purtroppo il rendering non riesce a dare risultati soddisfacenti nel caso si voglia una superficie liscia, in quanto le triangolazioni riflettono la luce secondo angoli differenti e il calcolatore non riesce a uniformarle. Non so se esista un trucco per migliorare l’effetto.
La versione 2D l’ho applicata per lo schienale di una sedia, mentre per il bracciolo ho utilizzato la curva Bézier del grado 3..