Comment redistribuer les points uniformément sur une courbe [python]


Answers

Votre «courbe» est un groupe de segments de ligne qui relient un tas de points. Chaque segment de ligne a une longueur; la longueur totale de votre courbe est la somme de ces longueurs de segments.

Donc, calculez d = totalCurveLength / (numberOfPoints - 1) , et (numberOfPoints - 1) la courbe en (numberOfPoints - 1) morceaux de longueur d .

Question

J'ai une courbe arbitraire en 3 dimensions composée d'une liste de points cartésiens XYZ. Les points ne sont pas répartis uniformément (il y a un facteur temps). Comment puis-je "reconstruire" la courbe avec un nombre donné de points qui devraient constituer la courbe. Je vois cela fait dans les programmes de modélisation 3D donc je suis assez sûr que c'est possible, je ne sais pas comment.

Basé sur la réponse, j'avais besoin de ça en python, j'ai donc commencé à travailler pour convertir interparc en python. Je suis allé jusqu'à l'interpolation linéaire. Il est probablement inefficace et a des redondances, mais peut-être que cela sera utile à quelqu'un http://pastebin.com/L9NFvJyA




Je ne suis pas sûr de suivre, mais au lieu de stocker les données réelles, peut-être stocker le delta d'un point à un autre, puis reconstruire la courbe à partir des deltas, donc il n'y aurait pas de points vides? Cela changerait cependant la forme de la courbe.