# Formula per CurvaNurbs

**URL:** <https://it.discourse.mcneel.com/t/formula-per-curvanurbs/5814>\
**Category:** Grasshopper\
**Created:** [12 Febbraio 2024, 3:31pm UTC](https://it.discourse.mcneel.com/t/formula-per-curvanurbs/5814 "2024-02-12T15:31:12Z")\
**Posts on this page:** 20\
**Page:** 5

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [27 Febbraio 2024, 11:48pm UTC](https://it.discourse.mcneel.com/t/formula-per-curvanurbs/5814/81 "2024-02-27T23:48:30Z")

</div>

giusto per completezza:

> **[Equazioni in formato Lineare che usano UnicodeMath e LaTeX in Word - Supporto...](https://support.microsoft.com/it-it/office/equazioni-in-formato-lineare-che-usano-unicodemath-e-latex-in-word-2e00618d-b1fd-49d8-8cb4-8d17f25754f8)**
>
> Usare Correzione automatica equazioni matematiche per inserire equazioni di equazioni in formato lineare.

 ![immagine](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/f/a/fa63efd785d499bf8b0fe658ac6805553347e732.png)

---

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [28 Febbraio 2024, 12:29am UTC](https://it.discourse.mcneel.com/t/formula-per-curvanurbs/5814/82 "2024-02-28T00:29:02Z")

</div>

> [@emilio](#):
>
> Se la curva ha grado maggiore, non basta considerare 3 punti.  
> Per il grado 3 ce ne vanno 4, per il **5, 4** punti e cosi’ via …
> 
> Per il grado 2 basta una equazione di primo grado, che e’ banale.  
> Per il grado 3 ci vuole quella di secondo grado, che e’ gia’ decisamente piu’ complicata, ma in genre si puo’ comunque risolvere, ma certo ci vanno 2 formule perche’ puo’ avere 2 soluzioni.

> [@0904](#):
>
> già riuscire ad imbastire equazione per una curva di grado 3 quindi con 4 punti si sarebbe fatto il 90% 😉

> [@emilio](#):
>
> t2(p3−3p2+3p1−p0)+t(2p2−4p1+2p0)+(p1−p0)=0

 ![immagine](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/d/0/d0ad66a9ee00d7d82c97bdfb51d46d23517c42f7.png)

se mi confondo darò la colpa all’ora tardi 🤭 🤭

da quello che ho capito, la prima espressione mi crea la curva (verde)  
mentre la seconda mi trovo la derivata (rossa)  
la terza quella (rosa) è ultima formula postata

ma si stava parlando sempre su come trovare i punti Quad di una curva di 3°  
grado quindi con 4 punti di controllo, tramite uso di una formula d’espressione?

 ![immagine](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/f/1/f1c0edc2e1790dffd025b89db8c96a52bfb7289b.png)

una formula che desse un risultato come questo ma su una curva di grado 3 con 4 punti di controllo.

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/23060_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [28 Febbraio 2024, 1:12pm UTC](https://it.discourse.mcneel.com/t/formula-per-curvanurbs/5814/83 "2024-02-28T13:12:33Z")

</div>

Prima cosa: questa e’ sbagliata 😊

> [@emilio](#):
>
> t2(p3−3p2+3p1−p0)+t(2p2−4p1+2p0)+(p1−p0)=0

Va scritta con la Y, non con la P.  
Dopo vediamo perche’

> [@0904](#):
>
> da quello che ho capito, la prima espressione mi crea la curva (verde)  
> mentre la seconda mi trovo la derivata (rossa)

OK

> [@0904](#):
>
> la terza quella (rosa)

Hai notato che la terza genera la stessa curva della seconda, solo scalata di \frac{1}{3} ?  
Questo perche’ e’ la stessa espressione senza il 3 iniziale.

Tu di solito vuoi solo le formule, ma quando il risultato prevede piu’ di una semplice formula dobbiamo organizzare un po’ la faccenda, perche’ fare il burattinaio non mi diverte … 😉 😀

Prima questione:  
Qui, come esempio, cerchiamo i punti Quad corrispondenti ai punti sulla curva con valori di **Y** minimi e massimi.  
Questo e’ chiaro ?

---

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [28 Febbraio 2024, 4:04pm UTC](https://it.discourse.mcneel.com/t/formula-per-curvanurbs/5814/84 "2024-02-28T16:04:03Z")

</div>

> [@emilio](#):
>
> perche’ fare il burattinaio non mi diverte … 😉 😀

al volo e di fretta avevo letto burattino, mi ero chiesto perché una frase simile, ritenendo che qui non c’é nessun burattino e nessun burattinaio, ma solo persone con la stessa passione a cui piace parlarne.  
poi rileggendola meglio ho letto burattinaio, presumo che intendi nel guidare a comprendere lungo il tragitto, se questo il senso, credo che capire una cosa che non si conosce è impossibile, infatti ho accettato il consiglio dato, di prendere per buona e utilizzare la soluzione così com’é, e quello ho fatto tutto qua. . .

conosco i miei limiti, quello che posso fare o meno. so anche che ho la testa dura, e confido che pian piano come tante cose apprese nella programmazione, anche queste col tempo diventeranno famialiari 😉

bando alle ciance, e torno sull’argomento:

> [@emilio](#):
>
> Prima cosa: questa e’ sbagliata 😊
> 
> t2(p3−3p2+3p1−p0)+t(2p2−4p1+2p0)+(p1−p0)=0

mi sembrava che ci mancasse qualcosa, ci vorrebbe la potenza tra **t^2** giusto?

> [@emilio](#):
>
> Hai notato che la terza genera la stessa curva della seconda, solo scalata di \frac{1}{3}13\frac{1}{3} ?  
> Questo perche’ e’ la stessa espressione senza il 3 iniziale.

non avevo collegato al 3 quindi di \frac{1}{3} scalato ma che era lo stesso risultato si questo lo avevo notato

> [@emilio](#):
>
> Va scritta con la Y, non con la P.

 ![immagine](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/b/f/bf0c8642bffe7a970e8b6655575d553c7e4220ef.png)

nell’ultimo compenente ho inserito i valori Y dei 4 punti, mentre la formula dell’espressione lo lasciata intatta così com’era e mi ritorna una serie di valori numerici

> [@emilio](#):
>
> Qui, come esempio, cerchiamo i punti Quad corrispondenti ai punti sulla curva con valori di **Y** minimi e massimi.  
> Questo e’ chiaro ?

**Esatto** sarebbe il risultato da ottenere. . .

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/23060_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [28 Febbraio 2024, 4:51pm UTC](https://it.discourse.mcneel.com/t/formula-per-curvanurbs/5814/85 "2024-02-28T16:51:11Z")

</div>

> [@0904](#):
>
> ho letto burattinaio

Voglio dire che, quando la procedura da seguire ha una certa complessita’, indicare le operazioni da fare, una per volta mentre tu le esegui, ma senza riuscire a trasmettere il significato dell’intera procedura secondo me ha poco senso.

Per quello, visto che siamo passati da calcolare i punti di una curva tramite un’unica espressione a cercare minimi e massimi per curve di terzo grado, preferisco romperti le scatole e cercare di spiegare il senso delle varie operazioni che stiamo facendo.

Eseguire operazioni senza capirne la logica non mi sembra utile per imparare.  
Fare la stessa cosa conoscendo lo scopo dei vari passaggi, secondo me invece serve. 🙂

> [@0904](#):
>
> ci vorrebbe la potenza tra **t^2** giusto?

OK, quello e’ vero, ma io dicevo un’altra cosa:

EDIT:  
No, mi hai fregato … 😉 😄  
Hai copiato la formula formattata con LaTeX … e certo che non ci vedi il “^” …  
😄  
/ EDIT

> [@emilio](#):
>
> Va scritta con la Y, non con la P.  
> Dopo vediamo perche’

> [@0904](#):
>
> che era lo stesso risultato si questo lo avevo notato

👍

> [@0904](#):
>
> nell’ultimo compenente ho inserito i valori Y dei 4 punti, mentre la formula dell’espressione lo lasciata intatta così com’era e mi ritorna una serie di valori numerici

Avendo usato le Y al posto dei punti (cioe’ i CV), invece di restituire i punti (che in realta’ sarebbero vettori) che disegnano la curva della derivata, ti da’ solo le Y di quei vettori.

Ma prima dobbiamo capire perche’ stiamo utilizzando quella formula.

> [@0904](#):
>
> **Esatto** sarebbe il risultato da ottenere. . .

Perfetto.  
Adesso, come facciamo a individuare quei punti ?  
Risposta: ragionando sul grafico della curva vediamo che in quei punti la tangente alla curva e’ parallela all’asse X, cioe’ la direzione della tangente ha una componente **Y** pari a zero.  
(ragioniamo in 2 dimensioni per semplicita’, scordiamoci la Z)

Anche questo e’ chiaro ? 🙂

---

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [28 Febbraio 2024, 5:55pm UTC](https://it.discourse.mcneel.com/t/formula-per-curvanurbs/5814/86 "2024-02-28T17:55:23Z")

</div>

> [@emilio](#):
>
> No, mi hai fregato … 😉 😄  
> Hai copiato la formula formattata con LaTeX … e certo che non ci vedi il “^” …

aaaa ecco cos’era che ieri non mi quadrava, io ricordavo di averla vista bene, i caratteri erano quelli ma qualcosa non mi convinceva: infatti t{^2} è diverso da **t2** senza formattazione ahahahah

lungi da me dare fregature, anzi a questo punto direi che la fregatura me la data la formattazione a me  
🤣 🤣 🤣

> [@emilio](#):
>
> Perfetto.  
> Adesso, come facciamo a individuare quei punti ?  
> Risposta: ragionando sul grafico della curva vediamo che in quei punti la tangente alla curva e’ parallela all’asse X, cioe’ la direzione della tangente ha una componente **Y** pari a zero.  
> (ragioniamo in 2 dimensioni per semplicita’, scordiamoci la Z)
> 
> Anche questo e’ chiaro ? 🙂

**Perfettissimo** 👍  
con il ragionamento ci siamo, adesso mi manca come fare ciò usando le formule delle espressioni  
e credo non solo questo, ma anche combinare il tutto con i 4 punti come nell’esempio sotto a 3 CV

[![](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/f/1/f1c0edc2e1790dffd025b89db8c96a52bfb7289b.png) ](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/f/1/f1c0edc2e1790dffd025b89db8c96a52bfb7289b.png)

ps

> [@0904](#):
>
> presumo che intendi nel guidare a comprendere lungo il tragitto

quindi, la tua prefazione, rispecchia ciò che io avevo inteso, che fare senza capire non si va avanti,  
e anche su questo non posso che essere pienamente daccordo come appunto dicevo. . .

Emilio per me il discorso che hai fatto va benissimo, solo una cosa, voglio prima ragguagliati bene su quello che stai facendo, ovviamente lo fai a tuo rischio e pericolo, se non ci capisco nulla poi non ti arrabbiare con me ahahahah già sento le risate di Sergio e Fabio che dicono:  
lo avevamo detto noi che era meglio dargli solo le formule 🤣 🤣

battute a parte, forza mettiamoci a lavoro e troviamo questi Quad in una curva con 4 CV di 3° grado. . .

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/23060_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [28 Febbraio 2024, 7:39pm UTC](https://it.discourse.mcneel.com/t/formula-per-curvanurbs/5814/87 "2024-02-28T19:39:23Z")

</div>

> [@0904](#):
>
> poi non ti arrabbiare

😄

> [@0904](#):
>
> già sento le risate di Sergio e Fabio che dicono:  
> lo avevamo detto noi che era meglio dargli solo le formule

Hehe …  
Il fatto e’ che se si tratta di una sola formula, va tutto bene. 😀

Ma quando la cosa si complica …  
Ho anche provato a scrivere solo le formule, qui:

> [@emilio](#):
>
> Scomporrei la soluzione (le soluzioni) in questo modo:
> 
> definiamo i valori **a** , **b** , **c** e **d**  
> ( usando adesso la Y al posto del punto P )  
> e infine ricaviamo i valori del parametro.
> 
> a = y\_3 - 3 y\_2 + 3 y\_1 - y\_0
> 
> b = 2 y\_2 - 4 y\_1 + 2 y\_0
> 
> c = y\_1 - y\_0
> 
> d = b ^ 2 - 4 a c
> 
> infine per i due valori di t ricavati:
> 
> t\_0 = \frac{ - b + \sqrt{ d }}{ 2 a }
> 
> t\_1 = \frac{ - b - \sqrt{ d }}{ 2 a }

Ma se non sai perche’ stai scrivendo quelle cose, e’ molto facile perdere il filo …

> [@0904](#):
>
> Perfettissimo

OK

Allora come facciamo a trovare i valori dove la tangente ha componente Y = 0 ?  
Serve la derivata.

Ora, senza cercare di spiegare la derivata (se ti interessa, chiamiamo Fabio 🙂 ), dico solo che la derivata indica la variazione di qualcosa.  
Ad esempio la velocita’ e’ la derivata dello spazio percorso rispetto al tempo.  
Qui la derivata della nostra Nurbs di terzo grado indica la variazione del punto (sulla curva) al variare del parametro **t**. Cioe’ la direzione verso cui ‘va’ la curva.  
Ma e’ solo per dare un’idea alla buona.

Quello che conta sapere (e ricordarsi) e’ che la derivata della curva e’ un vettore parallelo alla tangente alla curva.  
Quindi calcolando la derivata otteniamo la tangente.  
E dato che noi cerchiamo i punti in cui la tangente ha Y nulla, per trovarli cerchiamo i punti in cui la derivata ha componente Y nulla.

E’ chiaro ?

🙂 😕 🤔 😄

Questo passaggio mi sembra gia’ piu’ complesso.  
Ma e’ sempre cosi’ … all’inizio e’ tutto facile, poi arrivano gli impicci … 😄

---

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [28 Febbraio 2024, 9:46pm UTC](https://it.discourse.mcneel.com/t/formula-per-curvanurbs/5814/88 "2024-02-28T21:46:46Z")

</div>

![immagine](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/9/4/94f5f6219a4c36e1f19a076a468a97c5b8dbac65.png)

 ![immagine](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/7/d/7dfdae29f646f653efb196cc2cf0493eea9b566a.png)

a riportarla credo che dovrebbe andare bene, spero che siano i valori 1 2 3 4 che danno il risultato 0 ?

ps non solo non so il perché, nel senso effetto che ha una operazione singolarmente,  
ma cosa più importante e che non so nemmeno quale risultato finale produce. . .

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/23060_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [28 Febbraio 2024, 10:28pm UTC](https://it.discourse.mcneel.com/t/formula-per-curvanurbs/5814/89 "2024-02-28T22:28:12Z")

</div>

> [@0904](#):
>
> a riportarla credo che dovrebbe andare bene

Allora non era proprio incomprensibile … 😉 😄

Bene !

Con valori Y dei CV 1, 2, 3, 4 e’ logico che non ci siano dei Quad. La curva sale sempre.  
Ci vuole una curva con una forma adeguata … tipo questa:

![immagine](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/4/2/428ba582633d931a7ae58acc589c763ec6f6f8a2.png)

Invece di scrivere le Y a mano, potresti costruire la curva usando dei punti come CV,  
cosi’ trascini i punti in su e in giu’ e vedi cosa succede.

> [@0904](#):
>
> non so nemmeno quale risultato finale produce. . .

Dicevo…

> [@emilio](#):
>
> infine per i due valori di t ricavati:
> 
> t\_0 = \frac{ - b + \sqrt{ d }}{ 2 a }  
> t\_1 = \frac{ - b - \sqrt{ d }}{ 2 a }

Cioe’ ottieni i valori della t, cioe’ del parametro della curva.  
Se li passi all’espressione della curva ottieni i due punti.

( E’ dall’inizio della discussione che la t rappresenta sempre il valore del parametro.  
Non e’ cambiato niente … 😉 )

Esattamente come qui avevamo ricavato il valore di t e quindi il punto sulla curva.

> [@emilio](#):
>
> [salvio-23.gh](https://it.discourse.mcneel.com/uploads/short-url/dNRqFm6DpXxFSvpTscBQRozltzQ.gh) (14,4 KB)
> 
> ![immagine](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/c/0/c0fefd3c4024704706ab08dc713894a9efd16088.png)

Il calcolo che stiamo facendo per la Bézier di terzo grado e’ lo stesso che quella definizione fa per la Bézier di secondo grado.

I calcoli sono piu’ complesso perche’ il grado e’ cresciuto, ma la procedura e’ esattamente la stessa.

Convinto ? 🙂

---

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [28 Febbraio 2024, 11:19pm UTC](https://it.discourse.mcneel.com/t/formula-per-curvanurbs/5814/90 "2024-02-28T23:19:33Z")

</div>

> [@emilio](#):
>
> Esattamente come qui avevamo ricavato il valore di ttt e quindi il punto sulla curva.
> 
> > [@emilio](#):
> >
> > [salvio-23.gh](https://it.discourse.mcneel.com/uploads/short-url/dNRqFm6DpXxFSvpTscBQRozltzQ.gh) (14,4 KB)
> > 
> > ![immagine](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/c/0/c0fefd3c4024704706ab08dc713894a9efd16088.png)
> 
> Il calcolo che stiamo facendo per la Bézier di terzo grado e’ lo stesso che quella definizione fa per la Bézier di secondo grado.

seguo il discorso ma non mi torna il fatto che io adesso ho un punto CV in più  
quindi a differenza dell’esempio dove il grado è 2 e i CV sono 3  
qui mi trovo con una cruva di grado 3 e 4 CV

debbo aggiungere un’altro componente decostruttore punto per prendermi il 4° valore Y, ed aggiungerlo  
al componente Expression ovviamente quello centrale ed eseguire altre operazioni?

altrimenti mi vien da pensare che debbo Shiftare i punti?  
nel senso: i primi 3 Cv applico la formula, poi salto il primo e faccio lo stesso dal 2° al 4°?

non so ho dei dubbi su questo, anche perché se sarebbe il ragionamento corretto dovrebbe fare con i gruppi di 4 CV essendo che una curva di 3° grado richiede 4 punti CV quindi i primi 4 poi dal 2° al 5° dal 3° al 6° ecc

secondo me per capire bene il funzionamento dovrei partire da come si forma la curva, scomporre una formula bene o male riesco, ma ho un vuoto sulla curva e sulla derivata che da come dici è importante.

osservando la foto la prima EXP con i calcoli delle formule coi CV ed i valori del dominio t  
vengono creati una sequenza di punti che collegandoli forma una curva e fin qui tutto bene  
(la stessa cosa viene fatto per la derivata prendendo come riferimenti altri valori e altre formule)  
ma in entrambi i casi quello che mi sfegge è ad es: se aumento il dominio del valore **t** aumenta  
la quantità di punti che formano la curva, mentre invece la seconda formula ritorna **un solo valore**

 ![immagine](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/9/e/9e398e16e4f881c715a40d36c53c9215a9c4ce84.png)

e diciamo che fin qui ci può stare, pensandoci bene in una curva con 3 CV che va a formare una specie di arco in quell’arco ci potra essere un solo punto Quad con Y=0 obbligatorio (se l’ora non’é tardi confermo)

eeee Emilio anche quest’ultimo ragionamento mi porta al discorso sopra che ho fatto prima:  
o come la curva di grado 3 anche la derivata ha bisogno di 4 Cv e quindi si deve aggiungere  
altre operazioni all’interno della 2° EXP oppure se basta la 2° formula in foto, si deve Shiftare

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/23060_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [29 Febbraio 2024, 12:07am UTC](https://it.discourse.mcneel.com/t/formula-per-curvanurbs/5814/91 "2024-02-29T00:07:19Z")

</div>

> [@0904](#):
>
> debbo aggiungere un’altro componente decostruttore punto per prendermi il 4° valore Y, ed aggiungerlo  
> al componente Expression ovviamente quello centrale ed eseguire altre operazioni?

Quello che intendevo qui …

> [@emilio](#):
>
> I calcoli sono piu’ complesso perche’ il grado e’ cresciuto, ma la procedura e’ esattamente la stessa.

… era che la **logica** che seguiamo per ricavare i punti Quad e’ la stessa, se vuoi l’ **algoritmo** e’ lo stesso, ma applicato alla curva di terzo grado.

I calcoli cambiano, la definizione e’ meglio rifarla da zero.  
Non serve partire da quella per il secondo grado. Le espressioni sono diverse.

La nuova definizione e’ basata su quella che hai postato tu sopra:

> [@0904](#):
>
> ![immagine](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/7/d/7dfdae29f646f653efb196cc2cf0493eea9b566a.png)
> 
> immagine924×269 42.6 KB

Qui in pratica hai gia’ il calcolo dei punti Quad: hai i due valori di **t** che corrispondono ai Quad.  
Se inserisci i 4 CV e il calcolo della curva, e’ finita.

> [@0904](#):
>
> pensandoci bene in una curva con 3 CV che va a formare una specie di arco in quell’arco ci potra essere un solo punto Quad con Y=0

**Esatto**

Ma vedo che il paragone con il caso di secondo grado puo’ creare confusione.  
Lasciamolo stare e riprendiamo il ragionamento generale che stavamo facendo qui:

> [@emilio](#):
>
> E’ chiaro ?
> 
> 🙂 😕 🤔 😄
> 
> Questo passaggio mi sembra gia’ piu’ complesso.  
> Ma e’ sempre cosi’ … all’inizio e’ tutto facile, poi arrivano gli impicci … 😄

> [@0904](#):
>
> ho un vuoto sulla curva e sulla derivata che da come dici è importante.

Calma … ci stavamo arrivando … se non saltiamo di palo in frasca 😉

Riprendiamo da qui:

> [@emilio](#):
>
> Allora come facciamo a trovare i valori dove la tangente ha componente Y = 0 ?  
> Serve la derivata.
> 
> Ora, senza cercare di spiegare la derivata (se ti interessa, chiamiamo Fabio 🙂 ), dico solo che la derivata indica la variazione di qualcosa.  
> Ad esempio la velocita’ e’ la derivata dello spazio percorso rispetto al tempo.  
> Qui la derivata della nostra Nurbs di terzo grado indica la variazione del punto (sulla curva) al variare del parametro **t**. Cioe’ la direzione verso cui ‘va’ la curva.  
> Ma e’ solo per dare un’idea alla buona.
> 
> Quello che conta sapere (e ricordarsi) e’ che la derivata della curva e’ un vettore parallelo alla tangente alla curva.  
> Quindi calcolando la derivata otteniamo la tangente.  
> E dato che noi cerchiamo i punti in cui la tangente ha Y nulla, per trovarli cerchiamo i punti in cui la derivata ha componente Y nulla.

Questo si capisce o meno ?

---

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [29 Febbraio 2024, 12:34am UTC](https://it.discourse.mcneel.com/t/formula-per-curvanurbs/5814/92 "2024-02-29T00:34:44Z")

</div>

ormai si è fatto tardi, credo che meglio riprendere domani. posto solo il risultato

> [@emilio](#):
>
> Qui in pratica hai gia’ il calcolo dei punti Quad: hai i due valori di **t** che corrispondono ai Quad.  
> Se inserisci i 4 CV e il calcolo della curva, e’ finita.

 ![immagine](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/2/4/241fd11d39b055c753f47cb8c4b98294ac9c94d0.png)

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/23060_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [29 Febbraio 2024, 1:13am UTC](https://it.discourse.mcneel.com/t/formula-per-curvanurbs/5814/93 "2024-02-29T01:13:20Z")

</div>

> [@0904](#):
>
> meglio riprendere domani.

Certo. 🙂

> [@0904](#):
>
> posto solo il risultato

Ricordati di estrarre le **Y**.

Poi basta aggiungere il calcolo della curva per poter vedere la curva e i punti Quad.  
Puoi usare l’espressione oppure anche i componenti GH gia’ pronti:

 ![immagine](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/7/9/79986bc0a3434e8009f1ea8dcf4cd42b159cb5ea.png)

---

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [29 Febbraio 2024, 12:04pm UTC](https://it.discourse.mcneel.com/t/formula-per-curvanurbs/5814/94 "2024-02-29T12:04:14Z")

</div>

![immagine](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/f/4/f4778fac642b64d66bb74940296f8d0e8b10bb41.png)

mi sa che forse, ho sbagliato qualcosa nella formula dell’espressione, vedo valori troppo alti.

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/23060_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [29 Febbraio 2024, 12:14pm UTC](https://it.discourse.mcneel.com/t/formula-per-curvanurbs/5814/95 "2024-02-29T12:14:54Z")

</div>

> [@0904](#):
>
> forse, ho sbagliato

Puo’ essere.  
Se posti la def con i punti internalizzati, vediamo cosa succede.

---

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [29 Febbraio 2024, 12:46pm UTC](https://it.discourse.mcneel.com/t/formula-per-curvanurbs/5814/96 "2024-02-29T12:46:23Z")

</div>

> [@emilio](#):
>
> Puo’ essere.

infatti, avevo mancato di mettere le parentesi tra le due operazioni finali.

 ![immagine](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/1/d/1d9858b2df0c123c4f55c1808b86f05e3523eafb.png)

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/23060_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [29 Febbraio 2024, 3:30pm UTC](https://it.discourse.mcneel.com/t/formula-per-curvanurbs/5814/97 "2024-02-29T15:30:11Z")

</div>

Altro modo di ricavare i Quad, senza usare espressioni:  
Dato che la derivata di una curva di Bézier e’ a sua volta una curva di Bézier …

Ad esempio:  
 ![immagine](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/3/8/3834c6bddb61bd355c2c8cf1d02cc76791ef3b77.png)

da qui:

> <https://computergraphics.stackexchange.com/questions/10551/how-to-take-the-derivative-of-a-b%c3%a9zier-curve>

Possiamo utilizzare i componenti GH e intersecare il grafico della derivata con la curva Y = 0

 ![immagine](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/d/1/d1ace5f60836b912314ebebd86baf731c27892a4.png)

[salvio-25.gh](https://it.discourse.mcneel.com/uploads/short-url/4aY6SqW4nycVMSh4FQsywpAblvn.gh) (12,6 KB)

---

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [29 Febbraio 2024, 3:36pm UTC](https://it.discourse.mcneel.com/t/formula-per-curvanurbs/5814/98 "2024-02-29T15:36:00Z")

</div>

> [@emilio](#):
>
> Possiamo utilizzare i componenti GH e intersecare il grafico della derivata con la curva Y = 0Y=0Y = 0
> 
> ![immagine](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/d/1/d1ace5f60836b912314ebebd86baf731c27892a4.png)

eeee bella questa non me l’aspettavo 👏 la provo subito con la curva di esempio di qualche annetto fa  
cosi vedo le differenze anche delle derivate.

stavo pensado ad una cosa osservando la tua foto, e se invede della linea ci mettessi un piano?

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/23060_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [29 Febbraio 2024, 3:49pm UTC](https://it.discourse.mcneel.com/t/formula-per-curvanurbs/5814/99 "2024-02-29T15:49:49Z")

</div>

> [@0904](#):
>
> se invede della linea ci mettessi un piano?

Nell’esempio postato la curva originale e’ nel piano XY, quindi basta la linea.  
Per una curva 3D si puo’ usare il piano.  
Anzi, direi che con 3 piani puoi cercare i Quad per ogni vista, X, Y o Z …  
Ma non ho provato, forse dico cavolate … 😕 😄

E credo che orientando il piano opportunamente possiamo trovate i “Quad” anche per viste inclinate …  
Ma … stesso discorso di prima sulle cavolate. 😄

---

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [29 Febbraio 2024, 4:06pm UTC](https://it.discourse.mcneel.com/t/formula-per-curvanurbs/5814/100 "2024-02-29T16:06:23Z")

</div>

![immagine](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/3X/7/1/711079c13a35db0efc1e5768d9ba4791045decd4.png)

Emilio, ancora non ho gridato vittoria, essendo che sto cercando di affinarla nei dettagli  
in questo caso avevo inserito sia i valori Y che X per calcolarle entrambe  
ma credo che bisogna verificare il componente “Clean Tree”  
a come sembra non funziona come dovrebbe. . .

> [@emilio](#):
>
> la curva originale e’ nel piano **XY** , quindi basta la linea.

certo, era se nel caso una derivata potesse avere un’ampiezza maggiore della linea

[Pagina precedente](https://it.discourse.mcneel.com/t/formula-per-curvanurbs/5814.md?page=4)

[Pagina seguente](https://it.discourse.mcneel.com/t/formula-per-curvanurbs/5814.md?page=6)
