Unione di curve con grado diverso

Ciao a tutti: ho notato che fino alla versione 6 di Rhino, quando univo (questo è un semplice esempio) una curva di grado 3 con una di grado 1, nel tratto della curva di grado inferiore, venivano aggiunti ulteriori punti di controllo.
Assodato il fatto che comanda il grado più alto e che quindi la curva risultante dall’unione diventa di grado 3, mi chiedo cosa sia cambiato nella versione 7 perché ciò non avviene più: ora nel tratto della curva di grado 1, rimangono solo 2 punti.
Personalmente preferisco quest’ultimo risultato che ritengo anche più logico ma sarebbe interessante scoprire i motivi del nuovo comportamento.
Qualcuno lo sa?

Ciao, lo trovo più “corretto” pure io.
La cosa era stata richiesta da tempo:

Join: Maintains degrees and control points of the input curves : R̶H̶-̶5̶7̶9̶7̶9̶ (myjetbrains.com)

Cosa abbiano poi modificato a livello di comando non ne ho idea … :smiley:

Ciao bykow

non avendo ancora aggiornato rhino immagino che in properties - > details ad ogni
segmento viene associato un vettore dei knot. Nella 6 il vettore dei knot essendo unico
deve per forza uniformare i segmenti alla curva di grado superiore, motivo per cui
vengono aggiunti 2 punti (perché la curva ha grado 3 … immagino) .

Sergio

2 Mi Piace

Ciao Sergio, fa una cosa del genere:

1 Mi Piace

Ciao Fabio

definisce comunque un solo vettore knot … interessante.
Nell’SDK si capisce … si fa per dire :sweat_smile: la logica.
https://developer.rhino3d.com/api/cpp/class_o_n___poly_curve.html#ae80e5325548e2e467811603b5ffec257
La curva è composta da segmenti; ad ogni segmento è assegnato “parameter” che corrisponde al knot di partenza (52.146 per la linea). Ogni segmento è una curva …
e si torna alla “normalità” :joy:: elegante!

In sostanza un knot dei knot unico per tutte le curve che la costituiscono.
Sarebbe interessante vedere che fa unendo una curva grado 3, una grado 5 e una linea.

Sergio

1 Mi Piace

Linea rossa: U (deg=1) 0.000 , 40.518
Curva verde: U (deg=3) 0.000 , 0.000 , 0.000 , 42.431 , 42.431 , 42.431
Curva blu: U (deg=5) 0.000 , 0.000 , 0.000 , 0.000 , 0.000 , 32.710 , 65.420 , 65.420 , 65.420 , 65.420 , 65.420
Linea magenta: U (deg=1) 0.000 , 27.681

Vettore finale:

U (deg=5) -40.518 , -40.518 , -40.518 , -40.518 , -40.518 , -0.000 , -0.000 , -0.000 , -0.000 , -0.000 , 42.431 , 42.431 , 42.431 , 42.431 , 42.431 , 75.141 , 107.851 , 107.851 , 107.851 , 107.851 , 107.851 , 135.532 , 135.532 , 135.532 , 135.532 , 135.532

1 Mi Piace

Ottimo Fabio!
Quadra tutto. Ha invertito la linea rossa e ha sommato in sequenza i knot
aggiungendo knot multipli (in totale 5 perchè grado massimo 5) per delimitare
le singole entità.

1 Mi Piace

Mi avete fatto scoprire una cosa che non sapevo… era che il dominio nelle razionali (ultima in basso) non si basa sulla poligon cage ma sulla effettiva misura dell’arco…

1 Mi Piace

Mi ricordate cosa si intende per dominio in questi casi ?

Con " t " = Parametro:
(inizio dominio) <= " t " <=(fine dominio) della curva.
L’intervallo (arbitrario) di valori in cui " t" è definito.

1 Mi Piace

Guarda lo Zio che ti spunta con una chicca …
Allora, vediamo di fare una domanda non banale: secondo voi perché rhino da qualche versione non parametrizza le curve secondo il classico dominio 0 ; 1?

:thinking: :thinking: :thinking:

Il premio a carico di Giuseppe :joy: :joy: :rofl:

Segio cerco di risponderti io. . . .

anche se la risposta è di Giuseppe, che il post l’ho aperto io vale lo stesso? :grin:

Forse perché oggetti “scarsamente” parametrizzati comportano minore precisone in alcune operazioni tipo le intersezioni? :thinking:

ciao Fabio, si forse tecnicamente la risposta tua è corretta,
ma forse la giusta risposta (che non diranno mai)
è far andare al manicomio chi ci lavora :grin:

Premesso che non conosco la risposta ufficiale che potrebbe dare McNeel …
Pensate alla relazione tra lunghezza della curva e lunghezza del polygon cage …
Aiutone … @lucio_zadra offre una bottiglia di prosecco! :joy: :joy: :joy:

Ciao Fabio

Non vedo perche’ … :confused:
La precisione dei floating point non dipende dalla ‘grandezza’ del valore.
Ma forse non ho capito … :confused:

Ciao Sergio

Per avere una stima spannometrica della lunghezza senza fare calcoli ? …
( Anche se non saprei esattamente a cosa potrebbe servire … :confused: )

3 Mi Piace

Yes Emilio!

La lunghezza della poligonale è sempre più lunga della lunghezza della curva.
E’ un parametro che semplifica il disegno di curve e superfici a video (LOD level of details).
Per la parte numerica non saprei …

1 Mi Piace

Pian col fajan… qua non è che per ogni “challenge” si apre una bozza… siamo mica su tik tok… :sweat_smile:

1 Mi Piace

Neppure io.
Ma sono sicuro di avere letto da qualche parte che si tende ad utilizzare una parametrizzazione il più possibile vicina alla lunghezza della curva anche per non avere problemi nei calcoli.
Dove diavolo l’ho letto vorrei tanto ricordarmelo però. :pensive:

2 Mi Piace