Puisque vous devez résoudre cela avec un programme, vous pouvez peut-être faire une boucle qui calcule la longueur de l'arc comme une somme de ds avec un pas suffisament petit sur le paramètre, et le critère de sortie de boucle = la longueur à obtenir, ce qui vous donne la valeur du paramètre, donc x et y.
J'affirme péremptoirement que toute affirmation péremptoire est fausse
06/12/2010 - 11h27
Jeanpaul
Date d'inscription
novembre 2003
Localisation
Banlieue parisienne
Messages
10 310
Re : problème de géométrie sur ellipse
La longueur de l'arc s'obtient en intégrant l'abscisse curviligne s entre un point fixe (le haut de l'ellipse ici) et le point courant M.
Les coordonnées de M seront : x = a sin(u) et y = b cos(u) où u varie de 0 à pi/2, semble-t-il.
(ds/du)² = a² cos²(u) + b² sin²(u)
Il faut donc intégrer la racine du terme de droite entre 0 et t et ça donnera la longueur de l'arc AM.
Pour calculer numériquement une intégrale, le plus rapide est la méthode de Gauss : http://mathworld.wolfram.com/Legendr...uadrature.html
En pratique, avec 5 points, on a déjà une approximation excellente.
Le plus simple est de se ramener à une intégrale entre -1 et +1 et de dire que l'intégrale de f(u) entre -1 et +1 vaudra (voir la référence) :
0.2369 f(-0.90618) +0.4768 f(-0.538)+0.56889 f(0) +0.4768 f(0.538) + 0.2369 f(0.90618)
Les coefficients sont expliqués dans la référence. f(u), c'est ds/du, la racine de ce qui est écrit plus haut.
A programmer, c'est trivial.
Ca donne donc la longueur de AM en fonction de u. On peut interpoler pour avoir les points intermédiaires.
06/12/2010 - 18h35
Thy06
Date d'inscription
mai 2008
Âge
50
Messages
36
Re : problème de géométrie sur ellipse
Envoyé par Médiat
Puisque vous devez résoudre cela avec un programme, vous pouvez peut-être faire une boucle qui calcule la longueur de l'arc comme une somme de ds avec un pas suffisament petit sur le paramètre, et le critère de sortie de boucle = la longueur à obtenir, ce qui vous donne la valeur du paramètre, donc x et y.
Merci pour votre réponse.
Il m'est déjà arrivé de traiter des calculs de cette façon. Mais là, je ne comprends pas "ds" (...une somme de ds).
Je pourrais rechercher la bonne valeur d'angle pour la distance à atteindre, en incrémentant l'angle de façon grossière puis de plus en plus fine (dans la boucle). Ça me donnerait les xy du point à chaque fois, mais je ne vois pas comment je pourrais en déduire une distance que je comparerais à celle que je veux atteindre, puisque je n'ai pas de formule pour ça. (je n'ai peut-être pas tout compris dans votre proposition ?).
06/12/2010 - 18h48
Médiat
Date d'inscription
août 2006
Âge
62
Messages
8 492
Re : problème de géométrie sur ellipse
Le ds est un petit accroissement de la longueur de la courbe, dans le cas d'une courbe paramétrée on a , en reprenant les notations de Jean-Paul, avec :
x = a sin(u) donc dx = acos(u) du
y = b cos(u) donc dy = -bsin(u) du
où du est très exactement votre pas de calcul.
Dans la boucle vous devez calculer le nouveau u (u = u + du), et le nouveau s (longueur de l'arc, s = s + ds).
Dernière modification par Médiat ; 07/12/2010 à 05h22.
Motif: Correction faute de frappe et de signe
J'affirme péremptoirement que toute affirmation péremptoire est fausse
06/12/2010 - 19h15
Thy06
Date d'inscription
mai 2008
Âge
50
Messages
36
Re : problème de géométrie sur ellipse
Envoyé par Jeanpaul
La longueur de l'arc s'obtient en intégrant l'abscisse curviligne s entre un point fixe (le haut de l'ellipse ici) et le point courant M.
Les coordonnées de M seront : x = a sin(u) et y = b cos(u) où u varie de 0 à pi/2, semble-t-il.
(ds/du)² = a² cos²(u) + b² sin²(u)
Il faut donc intégrer la racine du terme de droite entre 0 et t et ça donnera la longueur de l'arc AM.
Pour calculer numériquement une intégrale, le plus rapide est la méthode de Gauss : http://mathworld.wolfram.com/Legendr...uadrature.html
En pratique, avec 5 points, on a déjà une approximation excellente.
Le plus simple est de se ramener à une intégrale entre -1 et +1 et de dire que l'intégrale de f(u) entre -1 et +1 vaudra (voir la référence) :
0.2369 f(-0.90618) +0.4768 f(-0.538)+0.56889 f(0) +0.4768 f(0.538) + 0.2369 f(0.90618)
Les coefficients sont expliqués dans la référence. f(u), c'est ds/du, la racine de ce qui est écrit plus haut.
A programmer, c'est trivial.
Ca donne donc la longueur de AM en fonction de u. On peut interpoler pour avoir les points intermédiaires.
Merci Jean Paul.
Je crois que vous m'avez pris pour un mathématicien !
Désolé j'aurais du indiquer mes compétences. Je veux bien faire l'effort d'apprendre, mais j'ai peur que ça prenne quelques années pour ce niveau de difficulté !
Est-ce que "a" et "b" sont les deux rayons de l'ellipse ?
mais "abscisse curviligne s", "ds" (comme pour la réponse de Médiat), "du", "...le terme de droite", "t", les intégrales...
Je comprends une chose tout de même, vous parlez de u, qui apparemment est un angle en radians (de 0 à 90°).
A programmer c'est trivial, donc c'est rassurant.
Cela permet de calculer une distance entre deux points sur l'arc. Je suppose que l'on peut faire l'inverse, calculer le nouveau point après déplacement sur une distance connue ? (A' dans ma question N°1 initiale).
Le ds est un petit accroissement de la longueur de la courbe, dans le cas d'une courbe paramétrée on a , en reprenant les notations de Jean-Paul, avec :
x = a sin(u) donc dx = acos(u) du
y = b cos(u) donc dy = -bsin(u) du
où du est très exactement votre pas de calcul.
Dans la boucle vous devez calculer le nouveau u (u = u + du), et le nouveau s (longueur de l'arc, s = s + ds).
OUF, il m'a fallu du temps pour tout comprendre. Ça y est c'est dans la machine et ça fonctionne très bien. Merci beaucoup Médiat.
C'est une solution que j'utiliserai à défaut d'une formule mathématique miracle (non informatique). Ce qui veut dire que je suis toujours preneur pour une formule mathématique. Peut-être que Jean Paul était sur la voie ? Mais là, je ne suis pas prêt de comprendre quoi que ce soit !
Dernière modification par Médiat ; 07/12/2010 à 05h23.
Motif: Correction faute de frappe et de signe (pas d'impact puisque utilisé au carré)
où d = longueur d'arc/a,
m = excentricité^2,
a = demi-axe majeur
le hic c'est que cette formule converge pour des angles près de 0 car c'est une série qui est l'inverse d'un développement limité de l'intégrale elliptique de seconde espèce autour de 0. Alors plus on s'éloigne de 0 moins la série est précise. Je dirais qu'elle est utilisable pour des longueurs correspondant à des points dans le premier quadrant de l'ellipse, mais pour des points dans les autres quadrants, on pourrait utiliser par exemple les propriétés de symétrie de l'ellipse. Mais je sais pas si c'est plus efficace que la méthode que tu as déjà.
où d = longueur d'arc/a,
m = excentricité^2,
a = demi-axe majeur
le hic c'est que cette formule converge pour des angles près de 0 car c'est une série qui est l'inverse d'un développement limité de l'intégrale elliptique de seconde espèce autour de 0. Alors plus on s'éloigne de 0 moins la série est précise. Je dirais qu'elle est utilisable pour des longueurs correspondant à des points dans le premier quadrant de l'ellipse, mais pour des points dans les autres quadrants, on pourrait utiliser par exemple les propriétés de symétrie de l'ellipse. Mais je sais pas si c'est plus efficace que la méthode que tu as déjà.
Merci Sylvain.
J'essaie de tout comprendre, mais j'ai du mal. En suivant ton lien, et quelques liens plus loin, j'ai tout de même trouvé une formule pour une approximation de la circonférence de l'ellipse :
h = (a-b)^2/(a+b)^2
cir3 = PI*(a+b)*(1+3*h/(10+SQR(4-3*h)))
Sinon, je ne comprends pas le terme exentricité. Est-ce le rapport axe majeur/axe mineur ? (ou largeur/hauteur ellipse).
Si la formule Out[4] fonctionne sur une partie de l'ellipse, quelle est l'autre formule pour le reste de l'ellipse et comment les relier ?
Je dispose en effet d'une solution qui fonctionne, que Médiat m'a proposée. Vu l'utilisation que je vais en faire (interactivité 2D, sans rentrer dans les détails, ce serait un peu long), cette solution va occasionner de nombreux calculs et tests en continu. C'est pour ça que je suis toujours intéressé par une solution mathématique.
JeanPaul a proposé aussi une solution, mais je n'ai pas pu en faire grand-chose vu mon niveau en math !
09/12/2010 - 17h05
Jeanpaul
Date d'inscription
novembre 2003
Localisation
Banlieue parisienne
Messages
10 310
Re : problème de géométrie sur ellipse
L'excentricité, c'est le rapport c/a où 2 c est la distance entre les 2 foyers et 2a le grand axe. Il est facile de calculer c car a² = b² + c².
Mais elle diverge plus on s'éloigne de phi=0 alors je l'utiliserais seulement pour des points dans le premier quadrant.
Pour les autres quadrants j'utiliserais la symétrie de l'ellipse comme ceci:
Premièrement, calculer le périmètre total C de l'ellipse avec une des formules trouvées ici: http://local.wasp.uwa.edu.au/~pbourk...y/ellipsecirc/ http://www.numericana.com/answer/ellipse.htm
Ensuite:
si 0<=L<=C/4:
le point est dans le quadrant 1. Utiliser L directement: z:=L/a, phi:=...etc..., puis X=a cos(phi), Y=b sin(phi)
si C/4<L<=C/2:
le point est dans le quadrant 2. z:=(C/2-L)/a, phi:=...etc..., puis X= -a cos(phi), Y=b sin(phi)
si C/2<L<=3C/4:
le point est dans le quadrant 3. z:=(L-C/2)/a, phi:=...etc..., puis X= -a cos(phi), Y= -b sin(phi)
si 3C/4<L<=C:
le point est dans le quadrant 4. z:=(C-L)/a, phi:=...etc..., puis X= a cos(phi), Y= -b sin(phi)
La formule elle-même peut être optimisée, les puissances de m devraient être calculées une seule fois, etc. Mais il reste à voir si c'est plus efficace comme cà.
12/12/2010 - 23h40
Thy06
Date d'inscription
mai 2008
Âge
50
Messages
36
Re : problème de géométrie sur ellipse
Ok pour l'excentricité.
Je crois que je vais me contenter de la solution de Médiat, qui fonctionne et qui est dans mes cordes.
Merci à Médiat, Jeanpaul et Sylvainc2
13/12/2010 - 00h29
Thy06
Date d'inscription
mai 2008
Âge
50
Messages
36
Re : problème de géométrie sur ellipse
Envoyé par sylvainc2
La formule calcule la valeur du paramètre phi pour la longueur d'arc L (attention: L est mesurée à partir de phi=0):
Sylvain, j'ai envoyé mon dernier post avant de voir le vôtre posté 2h auparavant.
Merci pour ces précisions. Je vais étudier tout ça.
13/12/2010 - 22h15
Thy06
Date d'inscription
mai 2008
Âge
50
Messages
36
Re : problème de géométrie sur ellipse
Envoyé par sylvainc2
La formule calcule la valeur du paramètre phi pour la longueur d'arc L (attention: L est mesurée à partir de phi=0):
...
le résultat ci-dessous en image.
Je n'ai pas tenu compte des symétries. Quelque soit L, ou le quadrant, les points restent bien sur le tracé de l'ellipse. Mais, alors que l'incrémentation de L est régulière, la progression sur l'ellipse est exponentielle (ou dans le genre).