Studio di una clotoide

Grazie per la definizione, bella.

Mi riferisco a comandi tipo Rebuild o Patch, non mi sembrano semplici riarrangiamenti dei comandi precedenti, penso sia stata riscritta la matematica che sta sotto.
Ma è una mia impressione ovviamente.

@Gambler Grazie Fabio, per avermi dato nuovo materiale di studio.
Molto intressante la tua disquisizione anche se anch’io ho fuso a circa metà.

Forse hai visto che ci sono un paio di post sul Discourse Americarno con una definizione della curva in GH.

Ciao Riccardo, sinceramente no.
Non so com’è ma il tempo diventa sempre meno. :roll_eyes:

Ciao Fabio,
grazie per l’approfondimento. :grinning:

Mi sembra di ricordare un paio di cose su 'sto poligono :wink: :
Che il convex hull del poligono comprende completamente la curva.
E credo ci fosse anche un teorema sul fatto che il numero di intersezioni di una retta con la curva non eccede mai il numero di quelle col poligono … ma non so quanto la memoria mi aiuti … temo non molto, come al solito. :blush: :smile:

Personalmente preferisco considerare il poligono piu’ che altro un aiuto visuale, o di costruzione.
Penso alla curva piu’ come definita dalle posizioni dei CV.
Ma e’ solo questione di punti di vista :grinning:

Quanto alla parametrizzazione, non pensavo tanto a quello … di solito la parametrizzazione delle Nurbs la trovo piuttosto … fastidiosa :wink: . Alla fine fa sempre quello che le pare. :smile:

Pero’ trovo molto interessante quanto detto da Dale nella discussione a cui avete accennato.
Se ho capito bene lui parla di una curva ‘naturale’ per cui l’accelerazione del parametro e’ nulla all’estremita’.
Non so se questo coincida con la parametrizzazione piu’ regolare nella prima parte di curva (quella che sente l’influenza dei nodi clamped) …
Ammesso che sia cosi’ per il terzo gradi di cui parla Dale, forse la stessa cosa succede anche per il quinto grado (suppongo con una proporzione diversa) … e si potrebbe applicare anche alla tua curva … forse … mah …
Va beh. Chiacchiere a ruota libera. :blush: :smile:

Bello !
Chissa’ se pensano di lavorare anche a un livello inferiore, tipo intersezioni e split/trim.
Ma forse ormai sono cose vecchie e il futuro punta su mesh, SubD e superfici non trimmate … mah. :grinning:

Ciao Emy, così a sentimento io pensavo che l’azzeramento della derivata seconda (fermo restando l’allineamento dei primi tre cv) dipenda solo dal rapporto tra i primi due nodi non nulli del vettore.
Però ora mi hai messo la pulce nell’orecchio! :slight_smile:
Se la mia ipotesi è vera il rapporto 1/3 2/3 dovrebbe valere per qualsiasi grado, dipende solo dalla regolarità del vettore.
Se hai ragione tu, però, la mia ipotesi non regge e dovrebbe saltare fuori un rapporto differente a seconda del grado.
Vedremo quando faccio due calcoli, sai che se non vedo le cose scritte su un foglio non vado molto lontano.

@Gambler ti posso chiedere una cosa, che lavoro fai? sei libero anche di non rispondere non ti preoccupare

Urka, perché non dovrei risponderti? :grinning:
Sono un orafo.

per riservatezza…
orafo? pensavo qualcosa come un ingegnere, tipo aereonautica o navale…i tuoi gioielli devono essere il top :folded_hands:

Sono anche un ingegnere. :smiling_face_with_sunglasses:

Ciao Fabio

Non era una teoria basata su qualcosa.
Ho solo pensato (bovinamente) che forse il rapporto cambia col grado.
Ma non ho la minima idea …
:grinning_face_with_smiling_eyes:
Molto meglio se ci ragioni tu.
:grinning_face:

Ho iniziato a dargli un occhio, ma ora sono preso.
Mi sta venendo il mal di testa, mi sa che stiamo aprendo il vaso di Pandora. :downcast_face_with_sweat:

Se ricordo bene: (anche) nodi a moltciplità piena agli estremi e nessun nodo a moltiplicità >1 interni.

Si, è così.
Ho fatto delle prove verificando con Grasshopper.

zero derivata seconda.gh (11,7 KB)

Penso che la relazione sia 1/n 2/n con n grado della curva. La prima e l’ultima span è molto “bezier” per essere una curva clamped, passante per il primo e ultimo punto di controllo.

Ciao Sergio

Non so se ho capito …
Una proporzione 1/n a 2/n non risulta sempre 1/2 ?
O e’ proprio quello che intendi ?
:thinking::grinning_face:

Non saprei. Seguivo la tua osservazione in merito a curve con grado diverso da 3.

Comunque è solo un inizio visto che data una direzione ci sono infinite combinazioni che restituiscono derivata seconda nulla. :smiley:

Ciao Sergio, che il rapporto dipenda dal grado n non mi convince molto. :thinking:
Ho scritto qualcosa nel post “Gli amici delle sub-D”, se controllassi anche tu i calcoli mi faresti un piacere.
Stiamo parlando di una B-Spline clamped e uniforme.
In sostanza a me risulta che P_1 deve stare a 1/3 della distanza totale tra P_0 e P_2 indipendentemente dal grado.

Concordo, esistono infinite soluzioni, perché il vincolo matematico non riguarda la posizione assoluta dei punti, ma la loro posizione relativa.

Pensavo si parlasse di bezier e in particolare della distribuzione dei punti di controllo. Mi sembrava troppo banale! Intendo nel caso di grado 3: 0;1/3;2/3;1. da cui ho scritto la regola generale.
Per una spline uniform clamped vale la regola delle Bezier affincheè la derivata seconda sia nulla in P0:
P2 - 2*P1 + P0 = 0
Quindi fisso il punto P0 e P2 e posiziono P1 nel punto medio oppure posiziono P2 allineato a P0 e P1 tale che risulti P1 in posizione mediana tra P2 e P0.

Ma adesso forse capisco cosa vuoi ottenere (sicuramente no! :face_with_tears_of_joy: ). Tu ricerchi la condizione tale che il raggio di curvatura sia infinito in P0.
risposta semplice: qualsiasi disposizione tale che i primi 3 punti siano allineati.
Spiegazione: la curvatura, l’inverso del raggio di curvatura, è: ||C’ x C’‘|| / ||C’||^3
con “x” prodotto vettoriale che è nullo quando C’ e C’’ sono paralleli.
Supponiamo per semplicità che P0=(0,0).

La condizione di allineamento è:
dato P2, P1 = a*P2 con a uno scalare (numero) variabile 0 < a < 1. Se a = 0.5 la C’‘=(0,0)
Calcoliamo la derivata prima e seconda a meno delle costanti :
C’ = k (P1-P0) = a k P2
C’‘= h (P2-2P1+P0) = h (P2-aP2+P0)= h(1-a)*P2 = j*P2
ma k e j sono dei scalati (numeri) mentre P2 è un vettore quindi C’ e C’’ sono paralleli per ogni “a”.

speriamo sia questo …

Sergio, credo che Fabio si riferisca a questa discussione, in cui si parla di curve adatte per le SubD, per le quali Dale aveva spiegato che occorre la derivata seconda nulla nel punto iniziale …
( O una cosa del genere … :blush: )

Ciao Fabio

i calcoli mi sembrano corretti ma non conoscendo la matematica delle subd … mi fido di te.