Da curve a subD o surface

Vorrei capire perchè queste due curve “uguali” stessi raggi grado punti di controllo grafico ecc
una genera una subD l’altra una superficie; se provo a ricostruirle una ha il doppio di massima deviazione.

Perchè.3dm (84,6 KB)

Perdona la mia ignoranza Antonio,
vero è che l’errore è doppio, ma stiamo parlando di 10^-14; si può considerare un errore tale da non potersi trascurare? Probabilmente mi mancano informazioni.
La SubD mi pare di aver capito che di suo ha un algoritmo che approssima maggiormente, in generale, ma direi che il risultato anzi, per essere una superficie da mesh, è notevole.
Prova a togliere quel punto di controllo in alto a sinistra, curva subd.

Sono portato a pensare che la curva rossa sia “compatibile” con SubD.

Ciao Antonio, sarebbe interessante capire come hai creato le due curve.
Sembrano identiche ma una viene indicata come “SubD Friendly+” e l’altra “solo” come “SubD Friendly”.
Cosa voglia dire non saprei.
Ho notato che la prima, estrusa con il gumball, fornisce una superficie subD - la seconda invece una superficie nurbs.

@byrkow secondo me è la curva nera ad essere compatibile con le subD, quella rossa mi sembra qualcosa di più. :thinking:

Ho scoperto solo ora che, spostando le curve nello spazio, l’errore di ricostruzione cambia! :astonished:

Edit: sembra sia una caratteristica dei cerchi deformabili.

Ciao a tutti ho semplicemente fatto un cerchio e ricostruito con 10 punti grado 3 la nera
la rossa ho attivato in ricostruisci Make SubD friendly
ma non capisco se:
“Sembrano identiche ma una viene indicata come “SubD Friendly+” e l’altra “solo” come “SubD Friendly”.”
perche non genera una subD ,anche se tutte le curve di 3 grado sono SubD friendly.
E’ una pura curiosità

Ciao Fabio

… Pare sia diventato il nostro argomento di discussione preferito … :grinning:

Cambia …in che modo ?
Possiamo ricondurre la variazione ai normali arrotondamenti dei valori numerici ?
O cambia di ordini di grandezza ?

Provate a disegnare un quadrato 10x10 poi disegnate una curva interpolata passante per i punti medi;
ridisegnate la curva interpolata con l’opzione SubD friendly .
Accade la stessa cosa una genera una sup. l’altra una sub d

Emilio illuminaci :wink:

Figurati Antonio ! :confused:

Chiedevo a Fabio su quell’errore che cambia …
I numeri floating point usati (anche) da Rhino sono un po’ una mia mania … ma ovviamente ci capisco quasi niente … :smile:

Ciao Emy.
Nel file di Antonio considerando (ad esempio) la curva rossa, copiandola a 40 unità a destra, otteniamo una deviazione massima (ricostruendo con grado tre e dieci CV) rispettivamente di 4,49387e-14 e 3,17754e-14.
L’ordine di grandezza è quindi lo stesso e siamo abbondantemente nella tolleranza assoluta del modello.
Due domande.
Possiamo considerare l’errore un normale errore di precisione del calcolo in virgola mobile?
Se sì, perché il calcolo risente non esclusivamente della geometria ma anche della posizione nel sistema di coordinate?

Potrebbe anche dipendere dal calcolo dell’errore …
Suppongo che per errori molto piccoli sia difficile andare a trovare il punto esatto dell’errore massimo,
per cui mi aspetterei anche di leggere un errore un po’ approssimato (poi magari non e’ cosi’ e Rhino si impegna nella ricerca … non so :confused:)

Credo perche’ l’errore dipende dal valore assoluto della coordinata,
quindi una coordinata vicino all’origine (diciamo < 100) avra’ un errore minore di una coordinata intorno ai 100.000.
Mi sembra il motivo per cui le mesh (che usano ,o almeno usavano in passato, valori single precision) risentono molto della distanza dall’origine.
Ma la cosa vale per ogni coordinata, di ogni oggetto, anche usando i double precision come per le normali curve e superfici.

In pratica, gia’ spostando un oggetto rischi di aumentare l’errore sulla posizione dei CV, poi calcolando dei punti partendo da quel CV potresti introdurre ulteriori errori.

… Almeno io arrivo fino li’ … e con parecchia confusione in testa …
Che ne dici ?

1 Mi Piace

Ho buttato in piedi un bel polentino.
La tua osservazione mi sembra corretta, ma non mi spiega il perchè alla mia domanda :wink: :upside_down_face:

Hai ragione, in effetti sono andato OT, scusa …
Parlavo esclusivamente degli errori di ricostruzione.
Non so niente di SubD e di curve piu’ o meno adatte ad esse … :blush:

Ciao Antonio.
Da quello che ho capito se disegni/rigeneri una curva con l’opzione SubD Friendly, Rhino intende che da lì ci vuoi ricavare una superficie Sub-D e, giustamente, agisce di conseguenza.
Queste curve sono indicate, nelle proprietà, come “SubD Friendly+”.

Fabio Fabio :rofl: questo lo davo per scontato, ma non colgo la differenza tra le curve :wink:

1 Mi Piace

Scusa Antonio. :joy:

Ti perdono solo perché è domenica :joy::joy::joy:

Grazie.
Io, in ogni caso, mi sono messo in ginocchio sui ceci. :innocent:

Avete notato che quando, da linea di comando, decidete di ottenere una curva “compatibile SubD” compaiono 2 punti grigi vicino alle estremità? (con punti di controllo attivi)
Non so perché ma continuo a pensare ad una situazione adatta ad una eventuale connessione in G2.
Che il G2 sia una necessità per le SubD?
Che le “morbidezze” delle SubD siano G2?
Ho cercato di capire la relazione tra la SubD e la propria mesh (se così si può dire) e mi sembra che il G2 sia la smussatura utilizzata da tale relazione.
Chi vuole illuminare?