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 …
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
Ciao Fabio
definisce comunque un solo vettore knot … interessante.
Nell’SDK si capisce … si fa per dire 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à” : 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
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
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à.
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…
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.
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?
Il premio a carico di Giuseppe
Segio cerco di risponderti io. . . .
anche se la risposta è di Giuseppe, che il post l’ho aperto io vale lo stesso?
Forse perché oggetti “scarsamente” parametrizzati comportano minore precisone in alcune operazioni tipo le intersezioni?
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
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!
Ciao Fabio
Non vedo perche’ …
La precisione dei floating point non dipende dalla ‘grandezza’ del valore.
Ma forse non ho capito …
Ciao Sergio
Per avere una stima spannometrica della lunghezza senza fare calcoli ? …
( Anche se non saprei esattamente a cosa potrebbe servire … )
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 …
Pian col fajan… qua non è che per ogni “challenge” si apre una bozza… siamo mica su tik tok…
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ò.