ottima documentazione, grazie Fabio
Ciao ragazzi.
Spero di aver capito che state discutendo sulla continuita’ nella Bspline paragonata alla continuita’ tra le varie Bezier componenti, per cosi’ dire.
( Se non ho capito un tubo, come non detto, inutile continuare )
Ho provato a ricavare le derivate nei due casi, se qualcuno volesse indagare (non credo, ma fa lo stesso … )
( Solo cubiche con nodi clamped … sorry )
La curva di partenza e’ il componente selezionato (verde) nell’immagine.
Si puo’ definire la curva dai Panel a sinistra, prima i CV e poi i nodi, oppure linkare una curva in Rhino, eventualmente editando i nodi.
Il componente in alto a sinistra in pratica fa da ConvertToBeziers.
Otteniamo sia la Bspline unica (casomai servisse) che la lista di Bezier componenti.
Nella parte destra calcoliamo le derivate per poterle confrontare (a vista).
In alto scegliamo curva di Bezier e valore del parametro
In basso scegliamo lo span della Bspline e il parametro interno allo span ‘normalizzato’, cioe’ da 0 a 1.
In pratica per confrontare i due casi sceglieremo gli stessi valori (Bezier/span e parametro).
Sia in alto che in basso i componenti sono raddoppiati per poter fare il calcolo in 2 Bezier/span consecutivi e verificare quindi la continuita’.
Se non funziona, fate un fischio per favore.
bspline.gh (18,8 KB)
Enjoy
Va beh … si fa per dire …
Ciao Fabio
Parto da una bezier grado 3. Al suo interno la bezier ha continuità geometrica e parametrica massima. La splitto nel punto evidenziato Eseguo il tuo calcolo che si traduce nelle quote riportare: continuità parametrica C0!!!
Dov’è l’equivoco.
Sono partito da una bezier dominio 0-1
ho splittato alla coordinata … 0.7 (non ho voglia di fare i conti …)
Ottengo due bezier dei rispettivi domini 0-0.7 e 0.7-1
Confronto le due bezier considerando entrambe nel dominio 0-1 per verificarne la continuità parametrica(???). E’ chiaro che saranno differenti! Ma se le calcolo in funzione dei domini di origine altro che C0, ottengo C3.
Ma questo vale anche per le Bspline. Prendo una Bspline e la copio. Supponiamo che l’originale abbia vettore dei knot 0 0 0 1 2 3 3 3 Alla copia modifico il vettore dei knot così 0 0 0 10 20 30 30 30. Ciò non modifica la curva infatti le due curve risulteranno identiche ma la derivata parametrica in 0 sono differenti per un fattore 10 e lo stesso per la derivata seconda e pure per la derivata terza.
Scegliere il dominio 0 - 1 semplifica le formule e il calcolo. Il dominio lo scegli tu e questo non modifica la forma della curva.
Sergio
Capito.
Grande Sergio!!!
Ci stavo diventando scemo, grazie mille.
… non saprei da dove iniziare con GH …
Mi sembra che quadri tutto. Faccio riferimento ai valori riportati nel tuo screenshot e ti ringrazio Emilio per fare un ultima precisazione analitica.
Le due bezier vengono calcolate nel dominio 0 - 1
Secondo la Bspline invece la prima bezier ha dominio 1 - 4 e la seconda dominio 4 - 5.
Per confrontare le due bezier devo fare riferimento allo spazio parametrico definito dalla Bspline.
Considero la prima bezier.
Sia t la variabile parametrica del dominio 0;1 ed s la variabile parametrica del dominio 1;4…
Vale la seguente relazione:
t=(s-1)/3
Infatti per s=1 t =0 e per s =4 t =1
Calcolo la derivata prima della prima bezier riferita allo spazio parametrico della Bspline.
dX/ds =dX/dt*dt/ds
dt/ds=1/3
dX/dt = 16.875
dX/ds =16.875/3 = 5.625
Considero la seconda bezier.
Sia t la variabile parametrica del dominio 0;1 ed s la variabile parametrica del dominio 4;5…
Vale la seguente relazione:
t=s-4
Infatti per s=4 t =0 e per s =5 t =1
Calcolo la derivata prima della seconda bezier riferita sempre allo spazio parametrico della Bspline.
dX/ds =dX/dt*dt/ds
dt/ds=1
dX/dt = 5.625
dX/ds =5.625*1 = 5.625
Analogamente anche per la Y e la Z.
Ultima precisazione, nelle derivate di ordine superiore il valore dt/ds interviene elevato alla potenza con esponente pari al grado di derivazione.
Ciao Sergio.
Grazie per la spiegazione !
Capisco poco di GH, ma quel poco cerco di usarlo in casi come questo.
Trovo comodi gli slider: vedo subito come cambia il risultato, in pratica e’ uno script interattivo.
( Piu’ che altro la definizione, per quanto molto semplice, mi e’ servita come esercizio: per farla funzionare ho dovuto ‘ripassare’ alcune cose … ormai la memoria fa parecchio le bizze … )
Grazie, ciao !
wauuu ragazzi, vi state proprio sbizzarrendo con questo argomento
lo sapete, non vi aiuto, perchè sono sicuro che potete farcela da soli
ahahahah battute a parte, ancora complimenti a tutti per le vostre conoscenze
una tiratina di orecchie a Emilio, dice di conoscere poco Gh, ma non si fa mancare mai nulla
ps ma una domanda giusto per un argomento accennato in precedenza:
ma con tutte queste formule calcoli ecc sarebbero le stesse da dover fare per riuscire a calcolare a priori la lunghezza di una curva conoscendo il grado ed i vari punti passanti? (segue: link e foto)
nel caso può interessare:
…e tutto questo mentre si stavano sistemando sul braciere dei discreti tocchi di carne… a favorire la dieta che ti sei imposto.
… Poi dice che non è vero che “sapere” e “magnare” vanno a braccetto…