Domanda

questo sito , che sembra avere le informazioni più dettagliate su Catmull spline-Rom, sembra che quattro punti sono necessari per creare la spline. Tuttavia, non menziona come i punti P0 e P3 influenzano i valori compresi tra P1 e P2.

Un'altra domanda che ho è come si dovrebbe creare spline continue? Sarebbe facile come definire i punti p1, p2 essere continuo con p4, p5 facendo p4 = p2 (cioè, supponendo di avere p0, p1, p2, p3, p4, p5, p6, ..., pN ).

Una domanda più generale è come si potrebbe calcolare tangenti su spline Catmull-Rom? Sarebbe necessario coinvolgere prendendo due punti sulla spline (dire a 0.01, 0,011) e ottenere la tangente basato su Pitagora, data la posizione coordina tali valori di ingresso dati?

È stato utile?

Soluzione

Date un'occhiata a un'equazione 2 - si descrive come i punti di controllo influenzano la linea. Potete vedere i punti P0 e P3 vanno nell'equazione per tracciare i punti lungo la curva da P1 a P2. Si vedrà anche che l'equazione dà P1 quando t == 0 e P2 quando t == 1.

Questa equazione esempio può essere generalizzato. Se si dispone di punti R0, R1, ... RN quindi è possibile tracciare i punti tra RK e RK + 1 utilizzando l'equazione 2 con P0 = RK - 1, P1 = RK, P2 = RK + 1 e P3 = RK + 2.

Non è possibile tracciare da R0 a R1 o da RN - 1 a RN a meno che non si aggiunge punti di controllo in più per sostituire R - 1 e RN + 1. L'idea generale è che si possono raccogliere qualunque punti che si desidera aggiungere alla testa e la coda di una sequenza per darti tutti i parametri per il calcolo della spline.

È possibile unire due spline insieme facendo cadere uno dei punti di controllo tra di loro. Diciamo che sono R0, R1, ..., RN e S0, S1, ... SM possono essere uniti in R0, R1, ..., RN - 1, S1, S2, ... SM.

Per calcolare la tangente in qualsiasi punto basta prendere la derivata dell'equazione 2.

Altri suggerimenti

Il Wikipedia articolo va in un po 'più di profondità. La forma generale della spline prende come punti di controllo di ingresso 2 con vettori tangenti associati. Ulteriori segmenti di spline possono essere aggiunti a condizione che i vettori tangenti ai punti di controllo comuni sono uguali, che conserva la continuità C1.

Nella forma Catmull-Rom specifico, il vettore tangente in punti intermedi è determinata dalle posizioni dei punti di controllo vicina. Così, per creare una spline continua C1 attraverso molteplici punti, è sufficiente fornire la serie di punti di controllo e la tangente vettori al primo e l'ultimo punto di controllo. Credo il comportamento standard è di usare P1 - P0 per il vettore tangente in P0 e PN -. PN-1 a PN

Secondo l'articolo di Wikipedia, per calcolare la tangente al punto di controllo Pn, si utilizza questa equazione:

T(n) = (P(n - 1) + P(n + 1)) / 2

Questo risponde anche alla tua prima domanda. Per una serie di punti di controllo 4, P1, P2, P3, P4, interpolando i valori tra P2 e P3 richiede informazioni formano tutti e 4 i punti di controllo. P2 e P3 si definiscono gli endpoint attraverso cui il segmento di interpolazione deve passare. P1 e P3 determinano il vettore tangente segmento interpolando avrà a punto P2. P4 e P2 determinano il vettore tangente segmento avrà a punto P3. I vettori tangenti nei punti di controllo P2 e P3 influenza la forma del segmento interpolando tra loro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top