# Curva con punti di diverso grado, vettore nodi

**URL:** <https://it.discourse.mcneel.com/t/curva-con-punti-di-diverso-grado-vettore-nodi/3294>\
**Category:** Rhino\
**Created:** [2 Luglio 2020, 4:12pm UTC](https://it.discourse.mcneel.com/t/curva-con-punti-di-diverso-grado-vettore-nodi/3294 "2020-07-02T16:12:25Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![degacam](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/degacam/32/6339_2.png) [@degacam](https://it.discourse.mcneel.com/u/degacam)\
**Post date:** [2 Luglio 2020, 4:12pm UTC](https://it.discourse.mcneel.com/t/curva-con-punti-di-diverso-grado-vettore-nodi/3294/1 "2020-07-02T16:12:25Z")

</div>

Esiste un modo per avere (o editare) punti di grado diverso all’interno della stessa curva?  
Inoltre non ho capito se i Knot Vectors, hanno qualche utilità nella modellazione (e come funzionano).

Grazie in anticipo, saluti a tutti! 🎉

---

<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:** [2 Luglio 2020, 4:36pm UTC](https://it.discourse.mcneel.com/t/curva-con-punti-di-diverso-grado-vettore-nodi/3294/2 "2020-07-02T16:36:01Z")

</div>

> [@degacam](#):
>
> punti di grado diverso all’interno della stessa curva?

credo che quello che vuoi fare non sia possibile, per lo meno in rhino quando inizi una curva con un grado lo puoi anche cambiare, ma converti anche i punti precedenti al nuovo grado.

edit:  
potresti cambiare il peso per i punti che ti interessano, il grado rimane invariato ma il risultato cambia.

---

<div class="post-metadata">

**Author:** ![Gambler](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/gambler/32/16276_2.png) [@Gambler](https://it.discourse.mcneel.com/u/Gambler)\
**Post date:** [2 Luglio 2020, 6:56pm UTC](https://it.discourse.mcneel.com/t/curva-con-punti-di-diverso-grado-vettore-nodi/3294/3 "2020-07-02T18:56:46Z")

</div>

> [@degacam](#):
>
> Esiste un modo per avere (o editare) punti di grado diverso all’interno della stessa curva?

Probabilmente non ho capito la domanda, ma il grado è una caratteristica della curva, i punti di controllo (CV) non hanno grado, semmai un peso.

> [@degacam](#):
>
> Knot Vectors, hanno qualche utilità nella modellazione (e come funzionano).

Sono fondamentali per determinare la curva, insieme al grado e ai punti di controllo (con il loro peso).  
Con Rhino non si può operare con il vettore dei nodi, non ci sono comandi che ti permettono di gestirlo … scarseggiano pure quelli per visualizzarlo. 😉  
Saprai che un cerchio è una curva di grado due, razionale, caratterizzata da un peso dei CV non uniforme (sennò non sarebbe razionale).  
Quelli agli “angoli” hanno peso Sqrt(2)/2.

Fai una prova, disegna un cerchio (\_Circle) ed estrai i punti di controllo.  
“Ricalcali” con una curva free form (\_Curve) di grado due e modifica opportunamente il peso dei CV, come detto sopra.  
Invece del cerchio otterrai una schifezza. 😀  
Ciò che differenzia il cerchio dalla nostra “schifezza” è proprio il vettore dei nodi.  
Il cerchio avrà infatti un vettore dei nodi composto solo da nodi con molteplicità due tipo "0,0,1,1,2,2,3,3,4,4,).  
La nostra curva invece avrà nodi uniformi, con un vettore dei nodi del tipo (0,1,2,3,4,5,6,7,8,9) … insomma una curva composta da nove knot span alternativamente retti e curvilinei, con continuità di tangenza ma non di curvatura.

---

<div class="post-metadata">

**Author:** ![degacam](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/degacam/32/6339_2.png) [@degacam](https://it.discourse.mcneel.com/u/degacam)\
**Post date:** [2 Luglio 2020, 10:31pm UTC](https://it.discourse.mcneel.com/t/curva-con-punti-di-diverso-grado-vettore-nodi/3294/4 "2020-07-02T22:31:05Z")

</div>

Grazie mille!! Vedo che anche con una curva di grado 7 è impossibile arrivare al cerchio o supercerchio.  
Dopo che la curva è stata costruita come faccio a cambiare il peso di uno o di tutti i CV?

---

<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:** [2 Luglio 2020, 10:33pm UTC](https://it.discourse.mcneel.com/t/curva-con-punti-di-diverso-grado-vettore-nodi/3294/5 "2020-07-02T22:33:48Z")

</div>

in rhino, con il comando omonimo 👍

---

<div class="post-metadata">

**Author:** ![degacam](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/degacam/32/6339_2.png) [@degacam](https://it.discourse.mcneel.com/u/degacam)\
**Post date:** [2 Luglio 2020, 10:38pm UTC](https://it.discourse.mcneel.com/t/curva-con-punti-di-diverso-grado-vettore-nodi/3294/6 "2020-07-02T22:38:03Z")

</div>

Trovato! Ci sono anche i decimali fantastico.  
Per quanto riguarda i Knot Vectors, vi credo sulla parola 😁

---

<div class="post-metadata">

**Author:** ![giuseppe](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/giuseppe/32/16416_2.png) [@giuseppe](https://it.discourse.mcneel.com/u/giuseppe)\
**Post date:** [3 Luglio 2020, 9:42am UTC](https://it.discourse.mcneel.com/t/curva-con-punti-di-diverso-grado-vettore-nodi/3294/7 "2020-07-03T09:42:34Z")

</div>

> [@degacam](#):
>
> Vedo che anche con una curva di grado 7 è impossibile arrivare al cerchio o supercerchio.

in assoluto anche con grado 70… ed è il motivo per cui occorre convivere con le curve razionali. Senza di loro non definiresti con esattezza alcuna conica.

---

<div class="post-metadata">

**Author:** ![byrkow](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/byrkow/32/17400_2.png) [@byrkow](https://it.discourse.mcneel.com/u/byrkow)\
**Post date:** [1 Luglio 2022, 6:50pm UTC](https://it.discourse.mcneel.com/t/curva-con-punti-di-diverso-grado-vettore-nodi/3294/8 "2022-07-01T18:50:10Z")

</div>

> [@Gambler](#):
>
> … scarseggiano pure quelli per visualizzarlo.

Ciao… riallacciandomi a questo vecchio argomento, avrei delle domande (anche fuori contesto) da fare a chi ha voglia e tempo di rispondermi: 1) è possibile conoscere/visualizzare il vettore dei nodi di  
una curva/superficie?  
2) so che la lunghezza del poligono di controllo di una  
curva è identico al dominio: forse è  
esso stesso il dominio? Quello che non mi torna è  
che se modifico la curva, il dominio  
non cambia…vi sono operazioni che possono  
cambiarlo?  
3) avevo in passato già chiesto del perché, in una curva  
chiusa, trovo più punti di  
controllo di quelli che mi aspetto e per giunta duplicati:  
se non comprendo sta cosa il  
caldo mi ucciderà 🤒 🥵  
Grazie a tutti, attendo vostre gradite risposte… a presto.

---

<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:** [1 Luglio 2022, 8:37pm UTC](https://it.discourse.mcneel.com/t/curva-con-punti-di-diverso-grado-vettore-nodi/3294/9 "2022-07-01T20:37:13Z")

</div>

Ciao Lorenzo,

> [@byrkow](#):
>
> 1. è possibile conoscere/visualizzare il vettore dei nodi di  
> una curva/superficie?

Per i nodi posso postare questo vecchio (parecchio vecchio 😉 ) script in VBScript.  
Non dovrebbe avere problemi su Windows.  
Se ti serve per Mac, dimmelo e provo a ‘tradurlo’ in Python.

```auto
sub main
su=rhino.getobject("Curve or Surface ?",12,vbtrue)
if isnull(su) then exit sub
if rhino.issurface(su) then
  degu=rhino.surfacedegree(su,0)
  degv=rhino.surfacedegree(su,1)
  ks=rhino.surfaceknots(su)
  kus=ks(0)
  kvs=ks(1)
  tx="U (deg="&cstr(degu)&")"
  tx=tx&" "&formatnumber(kus(0),3)
  for i=1 to ubound(kus)
    tx=tx&" , "&formatnumber(kus(i),3)
  next
  rhino.print tx
  tx="V (deg="&cstr(degv)&")"
  tx=tx&" "&formatnumber(kvs(0),3)
  for i=1 to ubound(kvs)
    tx=tx&" , "&formatnumber(kvs(i),3)
  next
  rhino.print tx
elseif rhino.iscurve(su) then
  deg=rhino.curvedegree(su)
  kc=rhino.curveknots(su)
  tx="U (deg="&cstr(deg)&")"
  tx=tx&" "&formatnumber(kc(0),3)
  for i=1 to ubound(kc)
    tx=tx&" , "&formatnumber(kc(i),3)
  next
  rhino.print tx
end if
end sub

main

```

> [@byrkow](#):
>
> 1. so che la lunghezza del poligono di controllo di una  
> curva è identico al dominio

Non e’ una regola. Il dominio puo’ iniziare con qualunque valore e avere qualunque ‘lunghezza’ (valore finale meno valore iniziale) escluso zero, senza che la curva cambi.  
Se il dominio corrisponde alla lunghezza del poligono di controllo e’ solo perche’ il comando Rhino (o di altro CAD) che ha definito la curva ha usato questo valore. Se ne usa uno diverso la forma della curva non cambia.  
Sui motivi di questa ‘coincidenza’ potremmo chiedere a Giuseppe.

> [@byrkow](#):
>
> 1. avevo in passato già chiesto del perché, in una curva  
> chiusa, trovo più punti di  
> controllo di quelli che mi aspetto e per giunta duplicati:

Se non erro questo accade nelle curve periodiche.  
Una curva chiusa non periodica dovrebbe avere solo il primo e l’ultimo punti di controllo coincidenti …

Ma per avere maggiori informazioni (e piu’ affidabili) meglio che lasci la parola agli esperti.  
Senz’altro Giuseppe, Fabio, Sergio e altri sapranno spiegare meglio di me queste cose … 🙂

---

<div class="post-metadata">

**Author:** ![Gambler](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/gambler/32/16276_2.png) [@Gambler](https://it.discourse.mcneel.com/u/Gambler)\
**Post date:** [2 Luglio 2022, 7:46am UTC](https://it.discourse.mcneel.com/t/curva-con-punti-di-diverso-grado-vettore-nodi/3294/10 "2022-07-02T07:46:44Z")

</div>

> [@byrkow](#):
>
> è possibile conoscere/visualizzare il vettore dei nodi di  
> una curva/superficie?

Prova il comando List.

---

<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:** [2 Luglio 2022, 8:23am UTC](https://it.discourse.mcneel.com/t/curva-con-punti-di-diverso-grado-vettore-nodi/3294/11 "2022-07-02T08:23:15Z")

</div>

> [@Gambler](#):
>
> comando List

Ah, bene !  
Un altro script ‘confermato’. 😀

---

<div class="post-metadata">

**Author:** ![Gambler](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/gambler/32/16276_2.png) [@Gambler](https://it.discourse.mcneel.com/u/Gambler)\
**Post date:** [2 Luglio 2022, 3:30pm UTC](https://it.discourse.mcneel.com/t/curva-con-punti-di-diverso-grado-vettore-nodi/3294/12 "2022-07-02T15:30:16Z")

</div>

> [@byrkow](#):
>
> 1. so che la lunghezza del poligono di controllo di una  
> curva è identico al dominio: forse è  
> esso stesso il dominio? Quello che non mi torna è  
> che se modifico la curva, il dominio  
> non cambia…vi sono operazioni che possono  
> cambiarlo?

Ti ha già risposto Emilio.  
Nelle ultime versioni di Rhino si è deciso di fare coincidere il dominio con la lunghezza del poligono di controllo.  
Andando indietro nel tempo, mi pare fino alla versione 4, invece la parametrizzazione andava sempre da 0 a 1.  
Puoi cambiare il dominio come vuoi (comando \_Reparametrize) e ovviamente la forma della curva non cambia.  
Lunghezza geometrica e lunghezza parametrica sono indipendenti.

---

<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:** [2 Luglio 2022, 4:40pm UTC](https://it.discourse.mcneel.com/t/curva-con-punti-di-diverso-grado-vettore-nodi/3294/13 "2022-07-02T16:40:32Z")

</div>

> [@Gambler](#):
>
> Puoi cambiare il dominio come vuoi (comando \_Reparametrize)

ciao Fabio, ne approfitto per chiedere se sia possibile cambiare il dominio di una curva “in Rhino”  
senza usare il comando Riparametrizza?

---

<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:** [2 Luglio 2022, 4:41pm UTC](https://it.discourse.mcneel.com/t/curva-con-punti-di-diverso-grado-vettore-nodi/3294/14 "2022-07-02T16:41:44Z")

</div>

> [@emilio](#):
>
> Ah, bene !  
> Un altro script ‘confermato’. 😀

Emilio anch’io ho fatto vari script senza sapere che esistevano già comandi specifici 😃

---

<div class="post-metadata">

**Author:** ![byrkow](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/byrkow/32/17400_2.png) [@byrkow](https://it.discourse.mcneel.com/u/byrkow)\
**Post date:** [2 Luglio 2022, 5:55pm UTC](https://it.discourse.mcneel.com/t/curva-con-punti-di-diverso-grado-vettore-nodi/3294/15 "2022-07-02T17:55:18Z")

</div>

grazie a tutti… il comando LIST l’avevo scoperto tanto tempo fa ma non gli avevo dato peso soprattutto perché, ai tempi, non mi era ancora chiaro il significato “vettore dei nodi” (non che ora lo sia perfettamente 😄 😇) perciò fatevi pure avanti con tutte le spiegazioni possibili… sono assetato 🤭 🤗

---

<div class="post-metadata">

**Author:** ![Gambler](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/gambler/32/16276_2.png) [@Gambler](https://it.discourse.mcneel.com/u/Gambler)\
**Post date:** [2 Luglio 2022, 5:56pm UTC](https://it.discourse.mcneel.com/t/curva-con-punti-di-diverso-grado-vettore-nodi/3294/16 "2022-07-02T17:56:46Z")

</div>

> [@byrkow](#):
>
> 1. avevo in passato già chiesto del perché, in una curva  
> chiusa, trovo più punti di  
> controllo di quelli che mi aspetto e per giunta duplicati:  
> se non comprendo sta cosa il  
> caldo mi ucciderà 🤒 🥵

Ciao Lorenzo.  
Per quel poco che ci capisco:

possiamo avere una curva chiusa dove semplicemente il primo e l’ultimo punto coincidono.  
In questo caso avremo una curva clamped dove, in sostanza, la molteplicità del primo e dell’ultimo knot è piena (pari al grado della curva).  
Troveremo un CV duplicato.  
Il seam di questa curva sarà un kink.

Potremmo però anche avere un curva periodica.  
Sarà non clamped e il seam non sarà un kink.  
Manipolando la curva con i CV, anche sul seam, manterrà una certa continuità dipendente dal grado della curva.  
Per ottenere questo occorre pagare un prezzo, avere appunto dei CV duplicati in numero uguale al grado della curva.

O no? 🤔 🤔 🤔

---

<div class="post-metadata">

**Author:** ![Gambler](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/gambler/32/16276_2.png) [@Gambler](https://it.discourse.mcneel.com/u/Gambler)\
**Post date:** [2 Luglio 2022, 5:57pm UTC](https://it.discourse.mcneel.com/t/curva-con-punti-di-diverso-grado-vettore-nodi/3294/17 "2022-07-02T17:57:48Z")

</div>

> [@0904](#):
>
> ciao Fabio, ne approfitto per chiedere se sia possibile cambiare il dominio di una curva “in Rhino”  
> senza usare il comando Riparametrizza?

Io conosco solo questo sistema … 😊

---

<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:** [2 Luglio 2022, 8:01pm UTC](https://it.discourse.mcneel.com/t/curva-con-punti-di-diverso-grado-vettore-nodi/3294/18 "2022-07-02T20:01:49Z")

</div>

> [@0904](#):
>
> senza sapere che esistevano già comandi specifici

Si’, certo, anch’io … 😄

Anche se qui parlavo di una situazione diversa:  
quando ti fai uno script perche’ ti serve ma non c’e’ il comando …  
E poi, in una versione successiva di Rhino, quel comando appare.  
Anche questo mi e’ capitato diverse volte … praticamente per ogni nuova release di Rhino o quasi, a quanto ricordo … 😀

---

<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:** [3 Luglio 2022, 4:31pm UTC](https://it.discourse.mcneel.com/t/curva-con-punti-di-diverso-grado-vettore-nodi/3294/19 "2022-07-03T16:31:29Z")

</div>

> [@byrkow](#):
>
> 1. avevo in passato già chiesto del perché, in una curva  
> chiusa, trovo più punti di  
> controllo di quelli che mi aspetto e per giunta duplicati:  
> se non comprendo sta cosa il  
> caldo mi ucciderà 🤒 🥵

Ciao Lorenzo

speriamo che il caldo non abbia avuto la meglio … 😂 😂 😂  
Le curve chiuse periodiche non passano per i punti di controllo estremi.  
Una curva grado 3 ottenuta attraverso 8 punti avrà punti di controllo:

P6,P0,P1,P2,P3,P4,P5,P6,P0,P1

Si nota che i primi 3 punti e gli ultimi 3 coincidono e pertanto agli estremi  
viene garantita la continuità 2 prevista per le curve di grado 3. Analogamente  
per una curva di grado 5 con medesimo input:

P5,P6,P0,P1,P2,P3,P4,P5,P6,P0,P1,P2

5 punti coincidenti e pertanto è garantita la continuità 4.

Sergio

---

<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:** [3 Luglio 2022, 7:25pm UTC](https://it.discourse.mcneel.com/t/curva-con-punti-di-diverso-grado-vettore-nodi/3294/20 "2022-07-03T19:25:56Z")

</div>

Ciao Sergio 🙂

> [@Sergio\_Alessi](#):
>
> Una curva grado 3 ottenuta attraverso 8 punti avrà punti di controllo:
> 
> P6,P0,P1,P2,P3,P4,P5,P6,P0,P1

Questa cosa di avere punti duplicati per le curve periodiche mi sembra un po’ una convenzione.  
Per costruire la curva sono sufficienti le informazioni date dai CV ‘non duplicati’.  
Credo che concettualmente basti, nei calcoli, utilizzare indici dei CV modulari.  
Direi anche che non mi sembra necessario che la curva abbia un punto iniziale.  
Lista dei CV e lista dei nodi per queste curve li vedo piu’, sempre idealmente, come ‘liste circolari’ …

… O il caldo, dopo Lorenzo, sta aggredendo anche me ? 😉😄

[Pagina seguente](https://it.discourse.mcneel.com/t/curva-con-punti-di-diverso-grado-vettore-nodi/3294.md?page=2)
