2009-04-18 11 views
4

Je sais qu'il existe des méthodes à approximate cubic Bezier curves (this page était aussi une bonne référence), mais existe-t-il une méthode plus rapide pour approximer une courbe de bezier de degré N? Ou pouvez-vous seulement utiliser la généralisation ci-dessous?Courbes de Bezier approximatives de degré N

De wikipedia:

la courbe de Bézier de degré n peut être généralisée comme suit. Compte tenu des points P0, P1, ..., Pn, la courbe de Bézier est:

alt text

Répondre

2

Une façon typique (général) à speedup évaluation des expressions comme celle-ci est par "différences vers l'avant" J'ai eu un rapide coup d'oeil à this, qui semble être le bon type d'approche, mais je ne peux pas garantir son exactitude, car je ne l'ai pas lu correctement. J'espère que cela aide (attention, je n'ai pas lu vos liens complètement, non plus, donc cela pourrait être rien de nouveau ...)

0

La différenciation vers l'avant est très rapide, mais elle a un certain coût à mettre en place, et elle peut s'accumuler erreur lorsque vous marchez le long de la courbe. Si vous utilisez des flottants double précision, vous n'avez pas à vous soucier du problème d'erreur, mais si vous utilisez un point fixe ou des entiers, cela peut être important. Dans mon expérience, le coût de mise en place de la différenciation directe ne vaut que pour plus de 2 * (N + 1) évaluations; donc pour une courbe (disons) cubique, si vous avez besoin de moins de huit points sur la courbe, il vaut mieux juste évaluer la courbe directement huit fois en utilisant la formule dans le message original.

Notez la formule est en fait assez rapidement si vous développez les polynômes & recueillent les termes des valeurs fréquemment utilisées de N.