un vostro parere: differenze tra dominio e lunghezza in una curva nel senso
- quando fare una parametrizzazione curva?
- è utile far diventare il dominio della stessa misura della lunghezza di una curva o solo da 0 a 1?
un vostro parere: differenze tra dominio e lunghezza in una curva nel senso
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 ) affermazione potrebbe essere un buon esercizio di scripting …
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.
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 … )
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 … )
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 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…
…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 …
grazie emilio troppo gentile
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.
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