# Dominio-Riparametrizzazione

**URL:** <https://it.discourse.mcneel.com/t/dominio-riparametrizzazione/4413>\
**Category:** Scripting e Programmazione\
**Created:** [18 Febbraio 2022, 11:17pm UTC](https://it.discourse.mcneel.com/t/dominio-riparametrizzazione/4413 "2022-02-18T23:17:14Z")\
**Posts on this page:** 6\
**Page:** 1

<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:** [18 Febbraio 2022, 11:17pm UTC](https://it.discourse.mcneel.com/t/dominio-riparametrizzazione/4413/1 "2022-02-18T23:17:14Z")

</div>

![reparam](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/2X/c/cfcb0af0c11c9c8320c88737140e141ed71bda31.png)

ho cercato come riparametrizzare una curva con Py in Gh ed ho trovato alcuni esempi  
il primo es:#1 l’ho provato funziona e testato

poi per caso spulciando nel menù ho trovato proprio questo metodo/funzione “Reparameterize”  
il secondo es:#2 sembra che chieda un valore numerico e se tra le () inserisco lo 0 o 1  
output torna solo Vero o Falso ma pare che non serve per riparametrizzare la curva?

ps per visualizzare “Reparameterize” nel menù serve associare una curva al componente Python poi sull’input col tasto Dx menù Type hint selezionare Curve oppure nel codice usare il coercecurve come foto

---

<div class="post-metadata">

**Author:** ![Sergio\_Alessi](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/sergio_alessi/32/22676_2.png) [@Sergio\_Alessi](https://it.discourse.mcneel.com/u/Sergio_Alessi)\
**Post date:** [19 Febbraio 2022, 9:23am UTC](https://it.discourse.mcneel.com/t/dominio-riparametrizzazione/4413/2 "2022-02-19T09:23:32Z")

</div>

Ciao

guarda la formula: lambda(t)=c\*t/((c-1)\*t+1)  
se poni c=0 restituisce false perché lambda vale sempre zero per ogni valore di t…  
Valori di c minori di 1 restituiscono punti distribuiti verso l’inizio della curva.  
Valori di c maggiori di 1 restituiscono punti distribuiti verso la fine della curva.  
E se c=1? 🙃

In sostanza la nuova curva è simile all’originale (non uguale!) ma la distribuzione  
dei punti è funzionale al coefficiente c. Se calcoli i punti sulla curva originaria suddividendo  
uniformemente il dominio e noti che i punti sono “sbilanciati verso la fine” della curva,  
inserendo c\<1 la nuova curva restituirà punti (sempre valutati suddividendo uniformemente  
il dominio) “meno sbilanciati verso la fine” della curva.

La prima viene chiamata formalmente riparametrizzazione ma di fatto non comporta nulla.

---

<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:** [19 Febbraio 2022, 12:30pm UTC](https://it.discourse.mcneel.com/t/dominio-riparametrizzazione/4413/3 "2022-02-19T12:30:31Z")

</div>

ciao Sergio grazie per la risposta

> [@Sergio\_Alessi](#):
>
> La prima viene chiamata formalmente riparametrizzazione ma di fatto non comporta nulla.

quindi per l’esempio #1 Dominio, mi confermi che non cambia nulla ma reimposta solo il dominio curva.

per la spiegazione counque non comprendo a cosa serva, essendo che il risultato è un bool True/False  
0 sempre falso per il resto qualsiasi numero torna True ma non posso usare il risultato come nuova curva  
(alla fine non mi ritrovo con una curva riparametrizzata ma solo con un valore booleana sbaglio?)

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/16095_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [19 Febbraio 2022, 1:05pm UTC](https://it.discourse.mcneel.com/t/dominio-riparametrizzazione/4413/4 "2022-02-19T13:05:54Z")

</div>

Ciao Salvio.

> [@0904](#):
>
> (alla fine non mi ritrovo con una curva riparametrizzata ma solo con un valore booleana sbaglio?)

Si’ … 😄

Come dice la documentazione che mostri ( vedi anche qui: [NurbsCurve.Reparameterize Method (rhino3d.com)](https://developer.rhino3d.com/api/RhinoCommon/html/M_Rhino_Geometry_NurbsCurve_Reparameterize.htm) ) quel metodo serve a riparametrizzare la curva (come cambia lo ha spiegato Sergio).  
Ma il metodo non definisce nuove curve, semplicemente modifica la curva che tu gli passi.  
E restituisce un valore booleano per dire se la parametrizzazione e’ andata a buon fine.  
Riporto qui cosa dice la documentazione:

#### Return Value

Type: [Boolean](https://docs.microsoft.com/dotnet/api/system.boolean)  
true if successful.

Nel tuo esempio, se il metodo restituisce **True** , ti riparametrizzata la curva in **crvs**  
Pero’ se tu il risultato lo assegni alla stessa variabile **crvs** … perdi la curva per strada. 😉 .  
Non hai piu’ modo di recuperarla.  
Se vuoi utilizzare la curva riparametrizzata non devi sovrascrivere **crvs**.

---

<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:** [19 Febbraio 2022, 10:31pm UTC](https://it.discourse.mcneel.com/t/dominio-riparametrizzazione/4413/5 "2022-02-19T22:31:24Z")

</div>

> [@emilio](#):
>
> Se vuoi utilizzare la curva riparametrizzata non devi sovrascrivere **crvs**.

> a.Reparameterize(0.1)

> a.Reverse()

ciao Emilio quindi in pratica è come il Reverse 👍

---

<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:** [20 Febbraio 2022, 2:17pm UTC](https://it.discourse.mcneel.com/t/dominio-riparametrizzazione/4413/6 "2022-02-20T14:17:40Z")

</div>

> [@Sergio\_Alessi](#):
>
> guarda la formula: lambda(t)=c\*t/((c-1)\*t+1)  
> se poni c=0 restituisce false perché lambda vale sempre zero per ogni valore di t…  
> Valori di c minori di 1 restituiscono punti distribuiti verso l’inizio della curva.  
> Valori di c maggiori di 1 restituiscono punti distribuiti verso la fine della curva.  
> E se c=1?

ok Sergio, come dicevi cambiando il valore cambia la distribuzione dei punti 👍

 ![rip2](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/2X/4/4e17d4c854d6c52df4116863387ee6e8adf61ae3.png)

val = 0 Curva non riprarametrizzata  
val \< 1 Curva riprarametrizzata con punti verso la fine  
val \> 1 Curva riprarametrizzata con punti verso inizio  
val = 1 Curva riprarametrizzata mantenendo gli stessi punti (come col comando in Rhino)

e se il valore è minore di zero \<0?
