Formula per CurvaNurbs

Giusto.
E in effetti la def postata non usa il componente giusto.
Con intersezione curva linea non abbiamo problemi di ampiezza.

1 Mi Piace

con questa def si va a creare una derivata come facemmo un paio di anni fa ma in modo diverso

io invece con il componente Curve | Plane sembra andare bene

quel bug di Rhino che non trovava il punto Quad (selezionato) sembra risolto

ma guardate un po, dopo tutte queste peripezzie poi non riesco a far funzionare bene vari Plane :man_facepalming:

bella anche questa, non sapevo che con questo componente bastasse la direzione ottimo :+1:

Qui non si vede come ricava la derivata … :confused:

intendevo con ultima tua def, quella senza le espressioni, vai a creare una derivata?
(in Gh componente, in Rhino curva, selezionati in verde)

cosa ho pensato, se ho una curva di grado 3 con CV di 4 o maggiori
se la vado a convertire in Bezier mi ritrovo con n curve tutte con 4 CV
quindi a questo punto posso utilizzare ultima tua def su tutta la curva
(anche chiusa)
:sweat_smile:

all’inizio della def inserisco la curva convertite in Bezier e col componente Control Points li aggancio ai PT

Giusto. :grinning:

Emilio mi confermi che all’uscita delle tre sottrazioni, se evito la moltiplicazione funziona ugualmente?

Credo di si’ …
Ho scritto anche la moltiplicazione per avere il valore vero della derivata, nel caso servisse ad esempio in altre def.

1 Mi Piace

ok io ho provato e funziona, ma ho chiesto se con altre curve potesse non andare bene, ma non credo.

immagine

incredibile in pratica per ottenere i Quad basta combinare 3 sottrazioni con i 4 CV wauuu

1 Mi Piace

Se può essere utile ho implementato in GH il metodo grafico per generare curve di Bézier e l’algoritmo di DeCastelljau:

curveParametricheForum.gh (27,6 KB)

2 Mi Piace

ok ragazzi, adesso credo di aver compreso come funziona “tracciare” una curva di Bezier :+1:

ringrazio a tutti per il contributo dato, e un ringraziamento speciale ovviamente va ad Emilio :medal_sports:

non so se posso gridare vittoria (non credo) ma di sicuro ho fatto un bel balzo in avanti per lo meno teorico :wink:


edit:
ps Emilio se e quando puoi dedicarmi un pò di tempo per la seconda parte;
quella su come trovare i punti dei cerchi osculatore, che si trovano con il comando “Curvatura” io sono qui.

io nel frattempo una delle mie ricerche mi ha portato a questa pagine che posto:

Emilio è Emilio, ma ti invito a rivedere con attenzione tutto il video di Freya che ho pubblicato sul topic Curve-di-bezier, si parla anche di quello, è molto completo.

Ciao Salvio

Intendi i punti di curvatura minima e massima ?

Non so … non mi sembra semplice. Certo perche’ sono cose che non conosco o quasi … :confused: :blush:

Ci vorrebbe Fabio o un altro esperto.

Inoltre, come ripeto spesso, non mi piace preparare le ricette gia’ pronte.
Preferisco aiutare a capire … e tra l’altro per poter provare a spiegare una cosa devo prima riuscire a capirla io. :confused:

Inoltre avevamo lasciato a meta’ il discorso su come trovare i punti Quad.
Se quanto stavo dicendo non e’ chiaro (molto probabile) possiamo chiedere se qualcun altro ci da’ una mano.

Capisco che giustamente tu abbia i tuoi interessi, ad esempio avere queste def per trovare punti vari, senza preoccuparti troppo di sapere come funzionino.
Ma temo di non essere adatto per queste cose.
Come dicevo sopra: se vuoi costruirti una def e posso dare delle dritte, benissimo.
Ma passare semplicemente delle formule … piovute dal cielo, per cosi’ dire, non fa per me.
Spiacente. :slight_smile:

Se proprio vuoi avere una def per trovare i punti di min/max curvatura, forse fai prima a chiedere ad altri … :blush:

Il cerchio osculatore me lo ricaverei da me:

  1. Ricerca della tangente al punto interessato
  2. Ricerca della perpendicolare passante per il punto
  3. Selezione di due punti vicini, appartenenti alla curva, uno a destra uno a sinistra
  4. Tracciamento della circonferenza per tre punti.

Servito

Ps la distanza tra centro del cerchio e il punto di interesse è il raggio del cerchio osculatore.
Ripeti la definizione per infiniti punti è ottieni i raggi di curvatura.

Ps2 sto pensando che un buon risultato si può ottenere usando il codice che ho pubblicato.
Dal momento che ad ogni valore di t è associato un punto, potresti prendere tre valori di t consecutivi e e fare passare da li la circonferenza. La precisione dovrebbe essere molta buona.

Ps3 ripetendo il codice per ogni punto puoi visualizzare facilmente massimi e minimi.

Grazie, Luca.
Molto bello ! :grinning:

:+1:

in che senso abbiamo lasciato il discorso a metà?

parli di questa parte?

Si’, esatto.
Quello. :slight_smile:

dovrebbe essere questo post:


:exploding_head: :exploding_head: :exploding_head:

Ah, grazie !
Gia’ me lo ero dimenticato … :confused:

Carino il video, ma ho fatto un po’ fatica a seguirlo, l’esposizione mi pare eccessivamente lenta. :sleeping:
Arriva alla conclusione che la derivata seconda non è esattamente la curvatura, come spesso si assume per praticità.
Avevo argomentato la cosa qui:

Avremmo perfetta corrispondenza k = f''(x) solo nel caso in cui f'(x)=0 ovvero in un punto critico della funzione.