Domanda

So che ci sono metodi per approssimativo curve di Bezier cubi ( questa pagina era anche un buon riferimento), ma c'è un metodo veloce per approssimare una curva bezier di grado N? Oppure si può utilizzare solo la generalizzazione di sotto?

Da wikipedia:

La curva Bézier di grado n può essere generalizzato come segue. Dato punti P0, P1, ..., Pn, la curva Bézier è:

alt text

È stato utile?

Soluzione

Un tipico modo (generale) per accelerare la valutazione di espressioni come questo è attraverso "avanti differenziazione" Ho avuto un rapido sguardo alzato questo , che sembra essere il giusto tipo di approccio, ma io non può garantire per la sua precisione come io non l'ho letto correttamente. Speranza che aiuta (avvertimento, non ho letto tutto il tuo link, né, quindi questo potrebbe essere niente di nuovo ...)

Altri suggerimenti

differenziazione in avanti è molto veloce, ma ha un certo costo per impostare, e può accumulare errori come passo lungo la curva. Se stai usando carri doppia precisione, non è necessario preoccuparsi molto per il problema di errore, ma se si sta utilizzando punto fisso o numeri interi, può essere significativo.

Nella mia esperienza, il costo di set-up differenziazione diretta vale solo per più di 2 * (n + 1) valutazioni; così per una (diciamo) cubica, se avete bisogno di meno di otto punti sulla curva è meglio solo valutare la curva direttamente otto volte utilizzando la formula nel post originale.

Si noti la formula è in realtà piuttosto veloce se si espande i polinomi e raccolgono i termini per i valori di uso frequente di N.

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