Quindi ho un set speciale di spline cubiche, i cui punti di controllo 2d generano sempre una curva che non si incrocerà mai nell'asse x . Cioè, le curve sembrano essere una semplice funzione polinomiale tale che y = f (x). Voglio creare in modo efficiente una serie di coordinate e lungo la spline che corrispondono a coordinate x uniformemente distribuite che eseguono la lunghezza del segmento spline.Trasforma la funzione spline 2d f (t) in f (x)
voglio trovare efficientemente y coordinate lungo la spline dove, per esempio, x = 0.0, x = 0,1, x = 0.2, ecc, o avvicinato un altro modo, trasformare efficacemente il f x, y ( t) funzione di stile in una funzione f ( x).
Attualmente sto usando un 4x4 costante matrice e quattro punti di controllo 2d per descrivere la spline, usando le costanti di matrice sia per Hermite o Catmull-Rom spline e collegandoli una funzione cubica di t che va da 0 a 1.
Data la matrice e i punti di controllo, qual è il modo migliore per ottenere questi valori Y sull'asse x?
MODIFICA: Devo aggiungere che un'approssimazione abbastanza buona da disegnare è sufficiente.
Il metodo più semplice che ho trovato finora è solo prendere un campione di punti dalla curva a intervalli regolari di t, quindi interpolare tra quelli lungo l'asse x per raccogliere i valori f (x). Questo sembra ok per la maggior parte del tempo, ma a volte manca i dettagli, perché è difficile sapere dove si trovano gli spigoli; l'aumento della frequenza di campionamento aiuta, ma non è esattamente efficiente né soddisfacente. Sono sicuro che c'è un modo intelligente che è efficiente dal punto di vista computazionale e non perde i dettagli. – vercellop
@vervellop, con la domanda modificata, il tuo approccio attuale potrebbe essere la risposta migliore, quindi ti suggerisco di postarlo come risposta, quindi alla fine puoi accettarlo se non si presenta nulla di meglio. E gli utenti possono revocarlo se lo considerano una soluzione buona/appropriata a questo problema. – MvG
Ci potrebbe essere una contraddizione nella tua domanda: la domanda originale richiede coordinate * x * uniformemente spaziate, mentre la modifica richiede una soluzione adatta per il disegno. In presenza di cuspidi pronunciate, un campionamento uniformemente distanziato probabilmente non sarà in grado di catturare queste cuspidi. Quindi ti suggerisco di lasciare la domanda come era in origine, poiché è a questo che si riferiscono le risposte. Potresti voler fare una nuova domanda sul problema del disegno, preferibilmente fornendo dettagli su cosa esattamente cerchi di ottenere, ovvero perché semplicemente disegnare la spline 2D non è sufficiente. – MvG