Perché?

come posso inserire questa formula, nel componente espressione di Gh per una curva di grado 3?
Hai dimenticato il pezzo in cui dice cosa sono quei
![]()
Mancava questo:

E anche questo (dove punta il link per il coefficiente binomiale)
Se postiamo una formula, e’ bene scrivere tutto cio’ serve per poterla utilizzare. ![]()
Ho provato a sviluppare la formula a destra:
salvio-22.gh (15,5 KB)
( Ho duplicato i componenti Expression per mia imbranataggine con GH
)
concordo in pieno, soltando che per me è una lingua marziana, non so dove inizia e dove finisce ![]()
grazie per la condivisione ![]()
ragazzi avrei 1000 domande da fare al riguardo, ne posto una per ora
nella foto sopra, la def va a rapprensetare la stessa animazione del link di wiki sulle curve di Bezier
ri-guardandola adesso mi è sorta una domanda, nella def appunto, il tutto funziona spostando lo slider di t con dominio impostato da 0 a 1 e fin qui per la def in Gh è tutto chiaro, ma se parliamo di Rhino, ricordo che il dominio delle curve vengono impostate in base alla lunghezza della poligon cage, prendendo questa cosa in considerazione sempre in Gh, mi era venuta in mente l’idea di impostare il dominio di t in base alla lunghezza per ogni segmento della poligon cage. che dite è fattibile? il ragionamente è corretto?
è facile che dovrò chiarire meglio il raginamento, chiedete senza problemi,
e se la ritenete una domanda di poco conto, fate come se non l’avessi mai fatta. . .
Parlando di Nurbs, quindi di curve con piu’ span,
credo sia un modo per ottenere una forma di curva che possa mediamente andar bene per il disegnatore.
Sono strategie di Rhino.
Il dominio da usare nei calcoli non e’ un valore a piacere.
( Se no nessuno avrebbe perso tempo a utilizzarlo …
)
Dipende da quale tipo di calcolo stai facendo, quale formula stai usando, il tipo di curva, dai valori del knot vector, quando c’e’.
Se stai considerando l’intera curva Nurbs (che puo’ avere diversi span) userai il dominio che riporta Rhino. In pratica usi il dominio corrispondente al knot vector, i cui valori possono o meno far riferimento alla polygon cage. Ma non sono affari nostri.
.
( Anche nel caso derivino dalla polygon cage, tu devi considerare sempre e solo il knot vector, senza preoccuparti di dove Rhino abbia preso quei valori )
Ma in questa discussione finora abbiamo parlato di ‘semplici’ curve di Bézier, cioe’ un singolo span.
E’ una formula diversa da quella che definisce l’intera curva multi-span (Nurbs).
Nella formula che stiamo utilizzando per le curve di Bézier il dominio e’ sempre da 0 a 1.
Se fai caso, a destra nella formula che hai postato sopra ad esempio c’e’ scritto:

Questo significa che quella formula richiede un dominio tra 0 e 1.
t deve essere compreso tra 0 e 1.
Come abbiamo detto … no, usare il dominio della Nurbs nella formula della Bézier non ha senso.
Sono due formule diverse.
Tutt’altro !
E’ importante non fare confusione. ![]()
si questo lo avevo notato, quindi bisognerebbe mettere mano alla formula. . .
ecco forse ci sono riuscito, con questo screen si dovrebbe chiarire meglio quello che intendevo.
tenendo conto che negli esempi delle curve di Bezier il valore t è sempre impostato da 0 a 1
in Rhino dove il dominio va da 0 a L che sta per lunghezza segmento poligon cage
è corretto ipotizzare che tramite formule di equazione/espressione abbia questo tipo di “Soluzione”?
oppure mi sono fatto tutto un film errato. . .
ps da notare che in questo caso a differenza della foto precedente, le curve non sono parametrizzate.
(chissà forse anche per questo ad un certo punto è stato scelto di non utilizzare il dominio 0-1)
quindi esempio sopra posso escluderlo come ipotesi, del fatto che in Rhino il dominio è 0-Lunghezza
con questo screen si dovrebbe chiarire meglio
Credo di si’, per chi conosce bene GH.
Io purtroppo a vista non riconosco alcuni componenti.
Passo …
Io purtroppo a vista non riconosco alcuni componenti.
avevo postato la foto solo per chiarire meglio il fatto che invece di impostare il dominio da 0 a 1
su tutte le poligon cage, il dominio viene impostato da 0 a lunghezza per ogni segmento poligon cage.
la domanda di fondo era se quando digito il comando dominio con una curva in Rh
venga fatta con la stessa logica di esecuzione che ho mostrato nella def postata.
riposto la foto con i nomi dei componenti:
Puoi usare la lunghezza del segmento e settare Falso il parametro Normalized di Evaluate Length,
come fai nella def.
Oppure usare un dominio da 0 a 1 e settare Normalized a Vero.
Credo che il risultato sia lo stesso.
la domanda di fondo era se quando digito il comando dominio con una curva in Rh
venga fatta con la stessa logica di esecuzione che ho mostrato nella def postata.
“Venga fatta” cosa ? ![]()
Se chiedi il dominio a Rhino, lui lo legge nella geometria della curva.
La def. invece mi sembra un pezzo dell’algoritmo di De Casteljau per ricavare i punti sulla curva.
Mi sembrano due cose diverse … ![]()
… Non capisco la domanda … ![]()
“Venga fatta” cosa ?
credo che Rhino utilizza la lunghezza metrica dei segmenti invece che del dominio 0-1 come nella formula. in questo modo evita la parametrizzazione delle curve, magari ci sarà un vantaggio in ciò ![]()
cercando info sulle curve di Bezier sono incappato in questo video ed ho notato un qualcosa particolare:
nel link sopra si vede che in Rhino viene usata quella finestra dove viene regolato il dominio
come in Gh ma non mi sembra di aver trovato nulla di simile nei comandi di Rhino. . .
per caso è uno di quei comandi nascosti?
credo che Rhino utilizza la lunghezza metrica dei segmenti invece che del dominio 0-1 come nella formula.
Non so se Rhino abbia una regola con cui stabilisce i valori da usare nel knot vector.
( se ti interessa chiedi a Giuseppe
)
Di certo quei valori possono cambiare, vedi il comando Reparameterize, e se costruisci la curva tramite script puoi usare i valori che vuoi tu.
Se ti interessa indagare su casi pratici, posto lo script che ho usato per anni (Il fatto che sia scritto in VBS lo conferma
)
knotsinfo.rvb (848 Byte)
Lo avevo scrittp quando Rhino non aveva un modo semplice per mostrare il knot vector.
Se nel frattempo questo strumento e’ stato aggiunto da McNeel … come non detto (anzi: come non allegato
) ![]()
Comunque il fatto che le Nurbs usino valori diversi per il knot vector non c’entra niente col calcolo delle Bézier che abbiamo visto sopra.
Le Bézier sono fatte da un singolo span, quindi il dominio del parametro e’ ininfluente.
Le formule che abbiamo utilizzato richiedono un parametro che varia da 0 a 1, quindi abbiamo usato quello.
E’ un modo come un altro per calcolare quelle curve.
Se non ti piace il dominio [0,1] dovrai modificare le formule.
in questo modo evita la parametrizzazione delle curve
Le Nurbs sono curve parametriche. Sono definite tramite un parametro.
Cosa vorresti evitare ?
per caso è uno di quei comandi nascosti?
Sui comandi Rhino personalmente non sono aggiornato … passo. ![]()
Puo’ anche essere semplicemente uno script o un plug-in con ETO.
Puo’ anche essere semplicemente uno script o un plug-in con ETO.
probabile, icona in alto a sinistra credo che porti proprio a quello.
Non so se Rhino abbia una regola con cui stabilisce i valori da usare nel knot vector.
( se ti interessa chiedi a Giuseppe)
Di certo quei valori possono cambiare, vedi il comando Reparameterize, e se costruisci la curva tramite script puoi usare i valori che vuoi tu.
di sicuro mi starò complicando la vita inutilmente come sempre, era solo una mia ipotesi, come detto magari era stata scelta questa strada per qualche vantaggio essendo che nelle prime versioni Rhino appunto usava il dominio 0-1 su tutte le curve. ovviamente McNeel come nei fatti non ha nessun problema a modificare le formule a suo piacimento, per me già è tanto essere arrivato a questo non lo avrei mai immaginato.
(adesso mi sto adoperando a cercare le formule per i punti Quad e come vengono suddivise le curve)
Quad
Ho provato per il caso piu’ semplice: curva di Bézier di secondo grado,
cercando unicamente il punto con Y massima.
<EDIT> oppure minima </EDIT>
Partendo dalla formula della derivata:

E ricavando il valore di t dall’equazione: “derivata = 0”.
salvio-23.gh (14,4 KB)
In questo caso e’ abbastanza semplice, ma tieni conto che aumentando il grado le cose si complicano in fretta …
come vengono suddivise le curve
Suddivise per cosa ?
In quale occasione ? ![]()
Suddivise per cosa ?
cerco il video sul quale è nato tutto questo discorso e domani che lo condivido chiarisco il discorso ![]()
In questo caso e’ abbastanza semplice, ma tieni conto che aumentando il grado le cose si complicano in fretta …
immagino che non sia facile, io le stavo cercando in rete non so se le avrei mai trovate.
confidando che come le formule prese su wiki, anche queste potessero essere a disposizione di tutti.
Ho provato per il caso piu’ semplice: curva di Bézier di secondo grado
funziona perfettamente anche nel caso in cui il Quad sia sull’asse X ovviamente collegando con output x
grazie grazie grazie una statua d’oro ti meriteresti
![]()
ps non saprei come spiegarlo, utilizzando le formule per fare determinate operazioni è tutt’altra cosa. . .
anche queste potessero essere a disposizione di tutti.
Non so se ci siano formule gia’ pronte, ne’ dove cercarle. Dico per il caso generale.
Io ho fato la prova per il caso piu’ semplice, mi e’ andata bene, e mi fermo qui. ![]()
Almeno parlando di cercare la soluzione
analiticamente.
Se poi vuoi provare numericamente, e’ un altro discorso, ma non parliamo piu’ di formule, casomai di algoritmi.
utilizzando le formule per fare determinate operazioni è tutt’altra cosa
Non farci l’abitudine … ![]()
Non sono molti i problemi per cui basta una semplice formula.
Non per niente tutti parlano di algoritmi, ma quasi nessuno di formule.
![]()
eeee a proposito di algoritmo:
io già stavo pensando, chissà. . . mo domando se basta ripetere la formula per ogni tris di punti
mi creavo appunto algoritmo che mi ripetesse per n volte la formula ed il gioco è fatto
ma mi confermerai che ovvimanete non’é proprio così semplice.
se basta ripetere la formula per ogni tris di punti
Mi sono perso.
Quale formula e per fare cosa ?
Mi sono perso.
Quale formula e per fare cosa ?
espressione che hai postato dove il risultato è 0.5
credo che serva combinare le stesse operazioni con aggiunta degli altri punti
e in teoria si dovrebbe avere il risultato corretto per una curva di grado maggiore?





