Parametrizzazione dominio

un vostro parere: differenze tra dominio e lunghezza in una curva nel senso

  1. quando fare una parametrizzazione curva?
  2. è utile far diventare il dominio della stessa misura della lunghezza di una curva o solo da 0 a 1?

Per quale scopo ?

Tieni anche conto del fatto che, se anche setti un dominio uguale alla lunghezza,
per punti ‘interni’ alla curva (cioe’ non punto iniziale o punto finale), generalmente non ci sara’ corrispondenza tra valore del parametro e lunghezza della curva fino a quel punto.

Per esemplificare, se la curva e’ lunga 100 e tu setti il dominio da 0 a 100, non e’ detto che il punto distante 75 da inizio curva abbia valore del parametro = 75.

EDIT

… La verifica di questa ( incauta :wink: ) affermazione potrebbe essere un buon esercizio di scripting … :smiley:

ciao emilio. sul fatto che il dominio e la lunghezza curva non corrispondano quansi mai, di questo ne sono al corrente. infatti la domanda mi è sorta quando ho applicato il comando “Riparametrizza” ad una curva con opzione “Automatico” e Rhino mi ha impostato il dominio fine alla stessa lunghezza della curva.

per questo mi chiedevo che senso ha?

Non è incauta affatto.
Il fatto che lo spazio parametrico e quello “metrico” coincidano è un caso.
Rhino utilizza un metodo curioso per individuare il dominio di una curva. Misura la poligon cage e si tara su quello. Potrebbe benissimo usare l’intervallo 0<1 per quel che vale.
Nei miei corsi quando spiego sta cosa faccio disegnare una curva grado 3 con 4 punti di controllo (single span) mettendo tutti i Cv lungo le X. In un caso con spaziatura regolare e nell’altro il secondo terzo e quarto vicini fra loro ma a grande distanza dal primo: lunghezza complessiva delle due curve identica. Entrambe vere nel dominio 0<1.
…e zacchete… che viene fuori la differenza fra spazio “metrico” e “parametrico” quando si fa un evaluate a parametro 0.5 per esempio.

1 Mi Piace

Grazie per la spiegazione, Giuspa !

Per cui non c’e’ una ragione particolare per il dominio usato per la parametrizzazione ‘automatica’, giusto ?
( Certo, un valore si doveva pur scegliere in qualche modo … :slightly_smiling_face: )

Credo che resti la domanda di Salvio: in quali casi puo’ essere utile cambiare il dominio ?

( Eh … ormai con la memoria che mi ritrovo … e’ tutto incauto … :smiley: )

Ciao !

Esempio banale: hai diverse curve che devi “evaluate” a uno o più parametri comuni.
La cosa più conveniente è riparametrizzare tutte fra 0<1. In questo modo sai cosa succede in ogni curva ad esempio a 0.5.

emilio se può essere consolatorio, anche per me che ho qualche anno in meno la memoria mi gioca brutti scherzi ultimamente :slight_smile: PS beh per chi vuole fare “l’incauta verifica” può provare questo codice:

Dim crv : crv = Rhino.GetObject
Dim pt : pt = Rhino.GetPointOnCurve(crv)
Dim t : t = Rhino.CurveClosestPoint(crv, pt)
Dim dom : dom = Rhino.CurveDomain(crv)
Rhino.Print "lunghezza : " & Rhino.CurveLength(crv,, Array(Dom(0), t)) & " - dominio : " & t

grazie per le ottime spigazioni ma ad un certo punto mi perdo . . . .

???

…e allora tanto ottime non sono… :wink:
…Al parametro (t) 0.5

che intendevi il parametro (t) 0.5 era chiaro non mi è chiaro cosa dovrebbe succedere?

intendi forse che non corrisponde alla metà della lunghezza della curva?

la spiegazione va bene è l’argomento che non è semplice . . . .

Ottimo.
Si potrebbe usare nei corsi di cui parla Giuseppe … :slight_smile:

grazie emilio troppo gentile :slight_smile:
come variante si potrebbe aggiungere questa riga Rhino.AddPoint Rhino.EvaluateCurve(crv, dom(1) / 2) :

Dim crv : crv = Rhino.GetObject
Dim dom : dom = Rhino.CurveDomain(crv) 'spostata dalla quarta riga
Rhino.AddPoint Rhino.EvaluateCurve(crv, dom(1) / 2) 'riga aggiunta
Dim pt : pt = Rhino.GetPointOnCurve(crv)
Dim t : t = Rhino.CurveClosestPoint(crv, pt)
Rhino.Print "lunghezza : " & Rhino.CurveLength(crv,, Array(Dom(0), t)) & " - dominio : " & t

in modo per avere un punto come riferimento e con lo Snap Medio attivo per verificare la differenza della metà lunghezza curva e la metà della lunghezza del dominio

esattamente questo intendevo.

:slight_smile: infatti giuseppe era una cosa che conoscevo grazie ad una lezione in un tuo video su Gh
dove spiegavi tra l’altro proprio questo concetto. visto che sono attento nelle spiegazioni :slight_smile: