Repérer des points sur une courbe de Bézier.
Bonjour,
Je travaille avec Inkscape pour mes créations de dentelles aux fuseaux.
Dans Inkscape, il y a une extension python (addnodes) qui permet d'ajouter des nœuds dans une courbe de Bézier en divisant la courbe en de multiples "sous-courbes". Il est possible de placer ces nouveaux nœuds dans la courbe soit en fixant un nombre de nœuds à répartir de façon égale, soit en spécifiant un espacement à respecter entre chaque nœud.
Ce mode de fonctionnement me pose quelques problèmes car il subdivise la courbe en y faisant apparaître de nouveaux nœuds qui rendent mes modifications ultérieures plus compliquées à gérer.
J'aimerais, au lieu de diviser la courbe, pouvoir obtenir les coordonnées de chacun "points", mais sans que la courbe soit subdivisée. Ces coordonnées (x,y) de chacune des positions sur la courbe me permettrons de placer un élément vectoriel (un petit cercle par exemple) sur la position qui aurait été occupée par le nouveau nœud.
En faisant abstraction de Inkscape et ses extension, cela est-il aisément réalisable, sachant que mes compétences mathématiques sont parcellaires concernant les courbes de Bézier ?
Ce qui m'intéresse est de parvenir à calculer les coordonnées de chacun des "points" au lieu de les placer sur la courbe.
Voici un exemple de code python dans Inkscape qui ajoute des noeuds dans la courbe de Bézier sélectionnée : https://inkscape.gitlab.io/inkscape/...py_source.html
Merci.
Placer des objets le long d'une courbe de Bézier (Inkscape)
Bonjour lg_53,
Merci pour ton intervention.
Le travail sur des courbes de Bézier est très complexe. La compréhension des équations, les différents "traitements" qu'on peu y appliquer et peut-être enfin, la possibilité de programmer quelque chose de "convenable" (lire : qui me convienne).
J'ai passé de très nombreuses heures à explorer le W3C à propos du SVG, maintenant, je tente de comprendre les courbes de Bézier. Ce n'est pas donné ... même à 7O ans :roll: Mes compétences en math sont pour le moins insuffisantes. À l'époque de mes humanités, les courbes de Bézier ... ça n'existait pas, surtout que j'ai suivi mes humanités en sciences commerciales, pas en scientifiques.
Je continue mes exploration et des tests divers et si l'un ou l'autre a été concluant, je suis encore bien loin de ce que je souhaite obtenir.
J'ai déjà compris le fonctionnement du couple de fichiers inx et py qui compose les extensions dans Inkscap. C'est déjà ça :mouarf:
Mais, et je vais explorer cette nouvelle direction, une extension dans Inkscape permet de place des objets le long d'un chemin (pathalongpath.py) (courbe de Bézier). https://github.com/piksels-and-lines...thalongpath.py
Actuellement, cette extension déforme les objets qui sont placés sur la courbe et cela ne me convient pas. De plus, le positionnement des objets le long de la courbe ne répond qu'à deux critères : un espacement constant ou un nombre défini d'objets.
J'ai pour ambition de pouvoir choisir les espacements entre les objets selon des progressions arithmétique, géométrique, logarithmique, et bien d'autre possibilités.
Ce que cette découverte m'a apporté est que les objets sont disposés le long de la courbe, MAIS sans altérer cette courbe, sans y ajouter des nœuds. Et donc, plus besoin de trouver les coordonnées de positionnement des objets.
Autre chose intéressante qui m'aide dans mes recherches : le positionnement des objets le long de la courbe en fonction d'une distance (le temps) calculée à partir de la longueur de la courbe (facile à déterminer) et du type de répartition choisi.
Une fois les objets positionnés le long de la courbe, trouver leur centre est relativement trivial ;)
Toutes ces explications pourraient être utiles à d'autre "chercheurs" qui œuvrent avec Inkscape ;)
Je retourne au taf :aie:
A+