Curve di Bézier

Contento tu…

“it’s a preference of mine”.
Sintesi perfetta.
Non mi è chiara la direzione che sta prendendo la discussione al punto in cui siamo:

  • Vuoi convincere qualcuno in merito a un determinato punto?
  • Vuoi sostenere che se lo fa il professionista-di-cui-non-posso-fare-il-nome allora è giusta?
  • Vuoi contrapporre/paragonare tecniche diverse di modellazione?

E’ stato scritto moltissimo e ci sono motivazioni a corredo. Da entrambe le parti.
Ora devi solo fare la sintesi, sperimentare e decidere cosa è meglio per te.
E’ la parte divertente!

Ripeto: Il post è stato aperto per cercare di capire il motivo per cui alcuni professionisti invitano ad usare Bezier piuttosto che le più generiche nurbs.

Tutto qui. Non mi sono ancora voluto addentrare nella matematica del problema ( se alludi a questo con divertente, il divertimento non avverrà presto) e volevo sapere se eravate d’accordo e perché, tutto qui.

Mi sembra che la sintesi sia: non siamo d’accordo, si può ottenere ottima matematica con generiche nurbs.

Ho capito male?

Contento di che?

OTTTTIMO … LUCIO!

Luca

se fosse così, allora per generare una curva che presenta 4 cambi di curvatura si deve
usare una bezier grado 6! E se ne dovesse presentarne 10? Si deve optare per una bezier grado 12!!!

E’ assurdo …

4 Mi Piace

Contento del fatto di sintetizzare il tutto come se stessimo dicendo ai “professionisti” che sparano caxxate…
Io non la vedo così, mi pare che siano persone che operano con il cad secondo i “moduli” che hanno a disposizione.
Il concetto rimane quello di utilizzare curve con pochi punti di controllo, morbide, pulite.
Cercherei piuttosto di trovare degli esempi dove una curva nurbs non riesca ad essere gestita come una curva bezier… o il contrario…

Ottima sintesi.
Divertente è quando unisci i concetti matematici alla pratica e ne vedi l’aspetto “tangibile” esplicitato in quello che fai.
Nonostante la lunga militanza ancora non riesco a non divertirmi.

2 Mi Piace

Questa è un’ottima osservazione!

Per caso avete un esempio pratico in cui si fanno 4 cambi (credo intendiate flessi)?
Comunque concordo con Giuseppe, sarà la pratica e … il divertimento a dirmi cosa usare.
Al momento sono ancora una spinazza :stuck_out_tongue_winking_eye:

Non necessariamente, penso si stia semplicemente parlando di superfici “complesse” dove il numero dei CV richiesto supera grado +1, la curvatura potrebbe anche essere concorde.

Mi pare quindi di capire che non sono emerse motivazioni logiche per impostare la modellazione limitandosi alle superfici di Bezier.
Il problema della continuità interna delle superfici spline multispan si risolve efficacemente con un grado adeguato – direi che un grado cinque soddisfa anche i palati più esigenti.
Certo nulla ci vieta di lavorare esclusivamente con superfici di Bezier, possiamo usarne una sola o più di una (pacth).
Il prezzo da pagare sarebbe però l’aumento del grado della superficie o l’aumento spropositato del numero dei punti di controllo, entrambe caratteristiche sgradite.

1 Mi Piace

Grazie Fabio, ne traggo le medesime conclusioni anche io. Solo che non sapendo bene come funziona l’algoritmo non comprendo perché con le Bezier

“Il prezzo da pagare sarebbe però l’aumento del grado della superficie o l’aumento spropositato del numero dei punti di controllo”.

Portate sempre pazienza e grazie.

Mi piacerebbe provare a costruirlo con gh per capirlo meglio, non se sia fattibile.

Ciao Luca, non è che ci capisca molto di queste cose, purtroppo. :pensive:

Così al volo avevo pensato ad un esempio: una srf spline multi-span con grado 5 e tre span in entrambe le direzioni (direi un esempio più che realistico).
Totale 8x8=64 CV.
Se vogliamo lavorare con una Bezier abbiamo due strade, credo.
La prima, usare lo stesso numero di CV ma aumentare il grado che deve salire a sette.
Oppure possiamo usare delle patch di bezier, in questo caso ne servono nove e i CV dovrebbero essere 6x6x9=324

Al di là di questo stavo facendo delle considerazioni, più che altro a “sentimento”, sulle quali probabilmente sarò smentito da chi ci capisce.
Una curva/superficie di Bezier ha una curva/superficie Nurbs equivalente a singolo span?
Secondo me sì, e me la immagino con lo stesso grado e lo stesso numero di CV.
Sempre se non mi sono infilato in un vicolo cieco mi chiedo, ma più curve/superfici di Bezier (con punti finali/spigoli in comune) hanno una curva Nurbs multi-span equivalente?
Anche qui mi viene da dire sì e questa volta me la immagino con un numero di punti di controllo inferiore alla somma del numero dei punti di controllo delle curve di Bezier.
Certo saranno necessari dei nodi, ma mi aspetto che il numero dei punti di controllo sia inferiore.
Aiuto! :sweat_smile:

1 Mi Piace

Una curva di Bezier di grado 5 (che ovviamente avrà 6 punti di controllo) è l’equivalente di una curva NURBS di grado 5 con 6 punti di controllo.
:face_with_head_bandage: :thinking:
Per me, questa, è un’affermazione, ma… mi aspetto di tutto :roll_eyes:
Buon lavoro :wave:

Nelle curve di Bezier è tutto regolare, uniforme.
Anche nelle nurbs.
… ma volendo le nurbs possono avere “pesi” e nodi diversi, irregolari…

A quanto ne so, e’ la stessa cosa.
Quella curva puoi chiamarla Bezier o BSpline, e’ definita nello stesso modo. :slight_smile:

Con o senza kinks, direi di si’, guarda un cerchio di Rhino.
Senza kinks ci sono dei vincoli (che non conosco :blush:) sulla posizione dei CV.

… Salvo errori od omissioni … :wink:

1 Mi Piace

Una bezier è una nurbs.
Per definire una bezier sono sufficienti i punti di controllo mentre per definire
una nurbs, oltre ai punti di controllo, è necessario conoscere il grado e il vettore
dei knot.
Una bezier ha continuità interna g pari al suo grado.
Una nurbs ha continuità interna g a tratti ovvero fatta eccezione in corrispondenza
dei knot. La continuità in corrispondenza dei knot è funzione della loro molteplicità:

  • knot singolo continuità g-1
  • molteplicità 2 del knot continuità g-2
  • ecc. ecc…

Nurbs grado 3 con 5 punti di controllo e vettore knot [0 0 0 0 1 2 2 2 2].
La stessa curva è equivalente a 2 bezier di grado 3 e quindi definibili a mezzo
4 + 4 punti di controllo.
Perché con 5 punti riesco a rappresentare 2 bezier con 4+4 punti?
Perché osservando il vettore dei knot, il knot 1 essendo univoco mi dice che
in corrispondenza di quella coordinata parametrica la continuità tra le due span
sarà C0, C1 e C2.
Quindi 5 punti di controllo + 3 condizioni di continuità = 8.
Se il aggiungo un knot di valore 1 (quindi molteplicità due) aumenta di uno il numero
dei punti di controllo ma si riduce di 1 il numero di condizioni di continuità e quindi la somma è ancora 8.
Se una nurbs grado 3 è composta da 7 span ovvero 7 bezier il numero di punti di
controllo è pari a 4 (di base ovvero 3+1) + (7 span -1 ) = 10 ptc (ipotesi knot intermedi univoci).
Essendoci 7 span il numero di condizioni di continuità è pari a (7-1) x 3.
10 pt + 6x3 condizioni = 28 condizioni.
7 bezier x 4 ptc per ogni bezier = 28

Spero sia chiaro.

Ciao

Sergio

6 Mi Piace

Grande Sergio! :heart_eyes:

Ma qui non dovrebbe essere [0 0 0 1 2 2 2] ? :thinking:

Io te la butto lì … perché non prepari delle mini-lezioni su questi argomenti, una cosa da fare con calma, da postare nel tempo.
Come vedi c’è una grande confusione!

Ma alla fine, riportandoci all’argomento principale, mi pare che la questione di limitarsi alla modellazione con curve di Bezier non solo non abbia fondamenti logici, ma sia pure un controsenso.

1 Mi Piace

Hai perfettamente ragione Fabio. Oltre ad un certo grado la funzione polimoniale è troppo “tesa” (immaginiamo di avere una lamiera tenuta fissa agli estremi: imponiamo una inflessione … ok; imponiamone 2 … ok; imponiamone 5 … allora sei Hulk!!!).
Non vorrei essere irrispettoso verso chi promuove l’uso delle bezier, ma sarebbe come
sostenere il terrapiattismo. Poi magari vien fuori che questi approssimano porzioni di
forme con curve bezier e poi al termine eseguono un blend. Sai che vaffa tomawawk
con tanto di dedica …

Oltre ad essere un argomento così vasto da coprire un corso universitario … poi sarebbe un continuo pettinare le barbie con il precisino di turno che vorrebbe
apportare correzioni o peggio copia incolla sparsi nel web. No no …

Questa è il vettore dei knot memorizzato in rhino. Ma la forma canonica
prevede g+1 di molteplicità (g grado della curva) agli estremi per estendere
la curva fino ai punti estremi noti e per poter applicare la formula di de boor
per tutti i punti appartenenti al dominio. Poi, a dirla tutta, mcneel ha sempre ragione:
memorizzare il punto iniziale e finale non serve …

3 Mi Piace

Hai ragione, cambiando il peso diventa razionale… allora correggo la frase: "una curva NURBS di grado 5 con 6 punti di controllo -potrebbe- essere l’equivalente di una curva di Bezier di grado 5
io speriamo che me la cavo :cry:

Buon lavoro (o buone vacanze!)

Promuovo dei mini corsi sull’argomento che potrebbe sembrare ostico ma sorprendentemente interessante… io rimango in “stato di ascolto”
Grazie :handshake: :+1: :wave:

1 Mi Piace