Répartir des points le long d'un tracé ?

Retrouver tous les sujets résolus.
Verrouillé
Guy

Répartir des points le long d'un tracé ?

Message par Guy » dim. 3 juil. 2011 15:10

Bonjour,
Je suis en pré-retraite et je bute sur un problème mathématique depuis plusieurs jours. J'ai attendu la fin de l'année scolaire pour poser ma question de crainte de ne pas obtenir de réponse. Je sais qu'il n'est pas rare que des étudiants essayent de faire réaliser leurs devoirs via le net.

Dans le cadre d'un travail perso (je dessine et tisse de la dentelle aux fuseaux), je veux pouvoir diviser un tracé vectoriel (segment de droite, partie de courbe, courbe de Bézier, partie de cercle, ...) en respectant les paramètres suivants :
- je connais - j'impose - la longueur du tracé à diviser
- j'impose un nombre de segment à répartir sur le tracé
- j'impose une distance entre les 2 premiers "nœuds" (Distance maxi)
- j'impose une distance entre les 2 derniers "nœuds" (Distance mini)

Je dois ensuite répartir les nœuds restant de manière à ce que la distance entre deux nœuds consécutifs évolue progressivement soit en diminuant dans le sens 1 segment maxi => dernier segment Mini, soit le contraire.

Je réalise un petit croquis de ce vers quoi je veux arriver (voir pièce jointe).

Dans ce croquis, l'axe vertical indique ne nombre de segments que j'impose dans cet exemple : 5 segments
L'axe horizontal est la longueur du segments : ici, 15 unités de mesure.
Le premier segment (Segment maxi) mesure 5 unités de longueur (entre origine et repère "5" sur l'axe horizontal).
Le dernier segment (segment Mini) mesure 1 unité de longueur (entre repères 14 et 15 sur l'axe horizontal.
Le premier segment peut être Mini et le dernier Maxi.

J'ai bien évidemment fait très simple ici et je me suis arrangé pour que les nœuds se situent à des distances "évidentes" : le premier segment est entre 0 et 5 unités de mesure, puis 9, 12, 14 et le denier nœud est à 15 (extrémité du tracé).
Les distances varient comme suit : 5, 4, 3, 2 et pour terminer 1 unité de mesure.
Cela ressemble fort à une progression arithmétique mais si, par exemple, je donne les références suivantes :
- longueur du segment = 15
- segment maxi = 6.5
- segment mini = 2.5
- nombre de segments = 5
je suis bloqué car je n'arrive pas à calculer la progression des distances.

La courbe dessinée sur le croquis ressemble un peu à une asymptote mais mes connaissances en math (vieilles de plus de 40 ans ) ne me permettent pas de trouver la solution.

J'ai envisagé un repérage de type logarithmique, mais là, même si la progression des distances entre chaque nœuds peut me satisfaire, je coince sur les les mesures imposées du tracé, du segment maxi et du segment mini.

J'ai envisagé la progression (suite) arithmétique, mais cette dernière ne permet pas une variation progressive de la longueur entre 2 segments consécutifs. Chaque segment successif se voit ajouter (retrancher) une même quantité. Ce qui ne correspond pas à mon désir.

J'ai essayé le calcul de la progression géométrique en calculant le PGCD des mesures des deux segments maxi et mini puis, sur base de la formule de calcul de la raison d'une progression géométrique, je tente de calculer le nombre de PGCD contenus dans chacun des segments. J'obtiens bien un résultat progressif mais quand je convertis les nombres de PGCD en unités de mesure : un PGCD correspond à une partie de longueur qui est contenue un nombre entier de fois dans les segments maxi et mini.
Pour les valeurs suivantes :
Longueur = 15
nbSegments = 5
distMaxi = 6.5
distMini = 2.5
je trouve :
PGCD = 0.5 => il y a 5 PGCD dans le segment Mini et 13 PGCD dans le segment maxi.
la raison q = (5/13)^1/(5-1) = 0.7875...
ce qui me donnes après calculs :
u1 = 13
u2 = 13 * 0.7875 = 10.2376...
u3 = 10.237 * 0.7875 = 8.0622...
u4 = 8.0622 * 0.7875 = 6.3491...
u5 = 5
Ces valeurs représentent donc un nombre de PGCD qui je convertis en les multipliant pas la valeur du PGCD : 0.5.
J'obtiens comme résultat :
u1 = 13 * 0.5 = 6.5 (valeur maxi imposée)
u2 = 10.2376 * 0.5 = 5.1188
u3 = 8.0622 * 0.5 = 4.0311
u4 = 6.3491 * 0.5 = 3.1745
u5 = 5 * 0.5 = 2.5 (valeur mini imposée)
Mais ici, si je somme ces valeurs, je trouve 21.28 au lieu des 15 imposés au départ !

Où est le problème ?
Comment solutionner mon problème sachant que chacune des valeurs imposables peuvent varier d'une situation à l'autre : le peux devoir imposer un nombre de segments différents, des mesures maxi et mini différentes, un longueur de segment différente ?

Aux dernières nouvelles, il m'a été conseillé d'essayer avec un système à 2 inconnues mais mes connaissances mathématiques ne sont plus très fraîches dans ma pauvre tête.

J'ai vraiment besoin d'une démonstration complète et pas seulement une direction de recherche car ensuite, je vais encoder ces calculs avec Python.

Merci de m'aider.
Fichiers joints
Un croquis simpliste de ce vers quoi je voudrais parvenir.
Un croquis simpliste de ce vers quoi je voudrais parvenir.
Progression_Dtel.png (5.88 Kio) Vu 880 fois
SoS-Math(2)
Messages : 2177
Enregistré le : mer. 5 sept. 2007 12:03

Re: Répartir des points le long d'un tracé ?

Message par SoS-Math(2) » ven. 15 juil. 2011 12:53

Bonjour,
le forum fermant aujourd'hui et votre message demandant un temps de travail, une réponse vous sera donnée à la réouverture du forum.
Cordialement
SoS-Math(2)
Verrouillé