Ciao Sergio, … immagino che per te sia un errore di distrazione scrivere che la seconda curva, benché sovrapposta alla prima, abbia anch’essa 6 punti di controllo, altrimenti mi si fonde il cervello
Grazie… attendo conferma, buona giornata
Sì, hai ragione. Correggo.
Qui c’e’ la definizione per il secondo caso.
( Ovviamente fatta funzionare … a calci e pugni, cioe’ a tentativi di Graft & Flatten … )
A destra: in alto la curva con grado maggiore, in basso quella con grado minore.
sergio-2.gh (17,3 KB)
Con una polilinea di 11 o più segmenti sembra che la cosa non funzioni.
C’è un limite ai gradi di una curva?
sergio-2 a.gh (12,2 KB)
Credo sia un limite di RhinoCommon
( In effetti se provo con 11 segmenti GH da’ errore … )
Utilizzando i normali componenti di GH ci appoggiamo a RhinoCommon.
Per superare questo limite suppongo che dovremmo calcolare la Nurbs direttamente nella definizione, senza richiamare il componente ‘Nurbs’ di GH.
Se non sbaglio era stata postata tempo fa una definizione che eseguiva l’algoritmo di De Casteljau …
Forse era stato Fabio ? @Gambler
Ciao Emy, forse ti riferisci a questa?
Cubic Bezier.gh (15,2 KB)
Mostra geometricamente l’algoritmo ma, vista la mia grande padronanza di GH, è limitata ad una Bezier di terzo grado.
Se qualcuno volesse sviluppare una definizione seria non sarebbe male.
Ciao Fabio
Acc ! …
Speravo di trovare qualcosa gia’ pronto …
Pazienza …
Grazie !
Secondo caso senza limite di grado, con un breve script in Python per calcolare la Bezier:
sergio-2B.gh (17,0 KB)
Lo slider in alto e’ per il numero di segmenti usati per disegnare la curva.
Per il primo caso … (almeno per ora) passo …
Dovrei scomporre la BSpline in Bezier … e adesso sono piuttosto confuso …
Emy che ci hai messo in questa definizione??
A me si pianta Rhino.
Anche a me.
Disabilita il solver prima di caricare la definizione.
Scusate ragazzi …
Non avevo provato a scollegare la polilinea.
Cosi’ dovrebbe andare
sergio-2B.gh (12,3 KB)
Grazie Leopoldo!
Grazie Emy, funziona.
Ragazzi, vi siete dati da fare!
Potrei prenderci gusto a condividere certe “pillole”
Sopra si parlava dell’algoritmo di De Casteljau: è interessante applicare questo algoritmo al contrario.
Disegno una polilinea con 4 vertici …
Ogni segmento viene ridimensionato con un fattore di scala maggiore dell’unità (nello specifico
1.5) assumendo come punto fisso per tutti il punto iniziale … (ho marcato i vertici con dei punti per non perdere il riferimento iniziale)
Unisco i nuovi punti finali con una nuova spezzata …
Ripeto il ridimensionamento dei nuovi segmenti come in precedenza con il medesimo fattore di scala …
Ripeto per l’ultima volta il procedimento: unisco i nuovi punti finali e ridimensiono il segmento …
Si disegna la curva di grado 3 passante per i punti originali (curva poi selezionata), e la curva passante per il primo punto ed i punti colore verde …
Ovviamente quanto sopra vale per ogni grado assunto (ma solo per curve bezier) con l’unica
differenza che il processo intermedio di ridimensionamento dovrà ripetersi in numero pari
al grado della curva.
Definizione GH, a suon di script come al solito.
Per delle definizioni piu’ ‘regolari’, come sempre lascio la parola … pardon, il post, agli esperti …
sergio-3B.gh (6,7 KB)
Bravo Emilio!
Codice scritto bene: chiaro e leggibile.
Guardando l’immagine ho capito (finalmente) qualcosina della cavalletta …
Un giorno, forse, aprirò l’interfaccia GH …
Grazie Sergio !
… Ma non l’ho fatto apposta …
E’ che ormai sono talmente rimbambito che se non faccio le cose semplici semplici non ne vengo fuori.
Questo non piacera’ ai puristi di GH … quella definizione e’ praticamente tutta uno script …
C’e’ ben poco di vero e proprio GH (per limiti miei).
Dai !
Io trovo scomodo scrivere le definizioni.
( Per non parlare dei famosi alberi … tu certo non avrai nessun problema )
Ma il ricalcolo automatico al variare dei parametri (e una certa facilita’ a variarli) e’ una gran comodita’.
Sergio, ho visto questa discussione sul forum USA.
Pensavo che, se sei d’accordo, potrebbe essere l’argomento per una delle tue spiegazioni.
Archi di terzo grado (e magari oltre …)
Ti sembra una interessante ?
(Se no, come non detto. )
… Sempre se non dico cavolate …