Distance entre un point et une conique
Règles du forum
Pour toute demande d'aide pour la conception (ou la confirmation d'un code) d'une figure Asymptote, c'est ici.
J'invite ceux qui ont régulièrement des questions à poser à aller dans leur panneau de l'utilisateur pour indiquer dans la signature de leurs messages :
On va gagner du temps dans les réponses !
Pour toute demande d'aide pour la conception (ou la confirmation d'un code) d'une figure Asymptote, c'est ici.
J'invite ceux qui ont régulièrement des questions à poser à aller dans leur panneau de l'utilisateur pour indiquer dans la signature de leurs messages :
- Nom du système d'exploitation (W7 ou Ubuntu 12.04 ou ...)
- Version d'Asymptote et éditeur utilisé pour les figures Asymptote
- Distribution LaTeX et éditeur utilisé pour les tex.
On va gagner du temps dans les réponses !
Distance entre un point et une conique
Bonjour,
je souhaite déterminer la distance entre une conique (tracée à partir de 5 points en passant par la commande "conic" de geometry.asy) et un point P que j'ai défini comme l'origine de mon repère.
Plus précisément je souhaite trouver le point de la conique qui est le plus proche du point P.
Je n'ai trouvé dans l'extension geometry que la commande : "distance(point, line)" (qui ne fonctionne donc pas dans mon cas ) et je n'ai rien trouvé dans la doc. officielle d'Asymptote. Faut-il alors que je passe par l'équation de la conique ?
Si quelqu'un sait comment faire, merci.
je souhaite déterminer la distance entre une conique (tracée à partir de 5 points en passant par la commande "conic" de geometry.asy) et un point P que j'ai défini comme l'origine de mon repère.
Plus précisément je souhaite trouver le point de la conique qui est le plus proche du point P.
Je n'ai trouvé dans l'extension geometry que la commande : "distance(point, line)" (qui ne fonctionne donc pas dans mon cas ) et je n'ai rien trouvé dans la doc. officielle d'Asymptote. Faut-il alors que je passe par l'équation de la conique ?
Si quelqu'un sait comment faire, merci.
Y.M.
Re: Distance entre un point et une conique
Hippyom a écrit :Bonjour,
je souhaite déterminer la distance entre une conique (tracée à partir de 5 points en passant par la commande "conic" de geometry.asy) et un point P que j'ai défini comme l'origine de mon repère.
Plus précisément je souhaite trouver le point de la conique qui est le plus proche du point P.
Je n'ai trouvé dans l'extension geometry que la commande : "distance(point, line)" (qui ne fonctionne donc pas dans mon cas ) et je n'ai rien trouvé dans la doc. officielle d'Asymptote. Faut-il alors que je passe par l'équation de la conique ?
Si quelqu'un sait comment faire, merci.
Je ne sais pas faire dans l'instant mais c'est un sujet intéressant.
Pour n'importe quel cas de conique ? Ou pour une conique d'un type donné ?
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !
Re: Distance entre un point et une conique
Et bien je pensais obtenir une hyperbole mais cela n'y ressemble pas vraiment.
Les points sont issus d'un tracé effectué à la main donc ne sont pas précis (et d'ailleurs je ne suis même pas sûr que la courbe soit exactement une conique à la base).
Mais j'obtiens le tracé suivant :
Les points sont issus d'un tracé effectué à la main donc ne sont pas précis (et d'ailleurs je ne suis même pas sûr que la courbe soit exactement une conique à la base).
Mais j'obtiens le tracé suivant :
Y.M.
Re: Distance entre un point et une conique
Bonsoir
Oui la courbe est bizarre. Pourrais-tu donner le code qui mène à ce dessin ?
Comme tes points sont lus à la main/avec les yeux, quel est l'origine du problème ?
Enfin pour la distance d'un point à une conique, ce n'est pas implémenté dans geometry.asy.
Les coniques est vraiment le sujet que je ne pratique plus depuis des lustres, mais déjà
y-a-t-il une méthode mathématique (même si elle mène à la résolution d'équation
polynomiale de degré élevé) qui fasse le boulot ?
O.G. nul en conique
Oui la courbe est bizarre. Pourrais-tu donner le code qui mène à ce dessin ?
Comme tes points sont lus à la main/avec les yeux, quel est l'origine du problème ?
Enfin pour la distance d'un point à une conique, ce n'est pas implémenté dans geometry.asy.
Les coniques est vraiment le sujet que je ne pratique plus depuis des lustres, mais déjà
y-a-t-il une méthode mathématique (même si elle mène à la résolution d'équation
polynomiale de degré élevé) qui fasse le boulot ?
O.G. nul en conique
Re: Distance entre un point et une conique
Je voulais bien aider... mais il faut être sûr de chercher dans la bonne direction.
Et là, avec ta figure... on est plus que tenté d'attendre que tu nous précises ton code... car pour une conique, c'est original
Tu as cherché à pousser l'extension de Philippe dans ses retranchements ?
Une suggestion supplémentaire :Cela devrait renvoyer "ellipse", "parabola", "hyperbola" ou "degenerated".
Pour ceux qui liront sans comprendre bqe :
Et là, avec ta figure... on est plus que tenté d'attendre que tu nous précises ton code... car pour une conique, c'est original
Tu as cherché à pousser l'extension de Philippe dans ses retranchements ?
Une suggestion supplémentaire :
Code : Tout sélectionner
write(conictype( LaBqeDeTaDroleDeConique));
Pour ceux qui liront sans comprendre bqe :
bqe signifie 'bivariate quartic equation, c'est à la fois :
- un type dont la structure est :
avec a tableau des 6 coefficients tels que :Code : Tout sélectionner
coordsys coordsys
real[] a
a[0]x^2+a[1]xy+a[2]y^2+a[3]x+a[4]y+a[0]=0- une fonction :
qui retourne un objet de type bqe représentant l'équationCode : Tout sélectionner
bqe(coordsys R=currentcoordsys,real a,real b,real c,real d,real e,real f)
ax^2 + bxy + cy^2 + dx + ey + f = 0, relativement au repère R.
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !
Re: Distance entre un point et une conique
Une piste à suivre :
Pour une conique : (attention, il y a volontairement des 2 ici !)
l'équation de la tangente en est : EDIT : corrigé
dont on trouve le vecteur normal .
Le point le plus proche de ta conique est qui vérifie le système d'équation :
1) est sur ta conique :
2) est colinéaire à :
avec XCAS, ça doit le faire easy.
Tu trouves en fait les extrema locaux, a priori deux solutions,
une simple comparaison et c'est fini.
Je vais essayer de mon côté.
Pour une conique : (attention, il y a volontairement des 2 ici !)
l'équation de la tangente en est : EDIT : corrigé
dont on trouve le vecteur normal .
Le point le plus proche de ta conique est qui vérifie le système d'équation :
1) est sur ta conique :
2) est colinéaire à :
avec XCAS, ça doit le faire easy.
Tu trouves en fait les extrema locaux, a priori deux solutions,
une simple comparaison et c'est fini.
Je vais essayer de mon côté.
Modifié en dernier par Francky le sam. 8 mai 2010, 11:52, modifié 2 fois.
Re: Distance entre un point et une conique
Francky a écrit :l'équation de la tangente en est : (à vérifier, c'est de mémoire)
Ce ne serait pas plutôt l'équation suivante ?
Attention : un terme en plus... mais aussi une inversion de lettres.
... et un vecteur normal à la tangente à la conique en est
Pour l'exemple suivant, je n'ai pas utilisé la fonction tangente de l'extension geometry, j'ai demandé le tracé de
Code : Tout sélectionner
line( a*x0+b*y0+d , b*x0+c*y0+e , d*x0+e*y0+f )
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***
- CODE ASYMPTOTE de la figure ci-dessus : Tout sélectionner
- import geometry;
- size(200);
- show(currentcoordsys,dotpen=invisible);
- point pA=(4,0), pB=(0,2), pC=(-4,0), pD=(0,-2), pE=(3,1);
- conic co=conic(pA,pB,pC,pD,pE);
- bqe bqec=equation(co);
- real x0=pB.x,
- y0=pB.y;
- real a=bqec.a[0],
- b=bqec.a[1]/2,
- c=bqec.a[2],
- d=bqec.a[3]/2,
- e=bqec.a[4]/2,
- f=bqec.a[5];
- dot(pA^^pB^^pC^^pD^^pE,5bp+blue);
- draw(co,.8bp+.8green);
- draw(line(a*x0+b*y0+d,b*x0+c*y0+e,d*x0+e*y0+f),red);
- addMargins(20,20);
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !
Re: Distance entre un point et une conique
Désolé d'avoir mis 2 jours à répondre.
Tout d'abord voici le code correspondant au dessin :
Ensuite, pour répondre à OG, ces points sont issus du relevé effectué sur un cadran solaire sur une journée. Ce tracé est une ellipse, une hyperbole, une parabole ou un cercle notamment selon le lieu.
J'ai rentré manuellement les coordonnées des points (en nombre de pts) dans un fichier.txt que je lis via la commande input car c'est le seul moyen que j'ai trouvé pour récupérer ces points depuis l'image scannée du tracé. J'ai préalablement essayé pstoedit pour récupérer directement les coordonnées des points mais comme ils n'étaient justement pas considérés comme des points par Asymptote c'était assez compliqué.
Apparement c'est une ellipse
En tout cas merci pour vos réponses, je vais tâcher d'utiliser vos indications à bon escient et me pencher sur l'équation de la conique
Tout d'abord voici le code correspondant au dessin :
Code : Tout sélectionner
import geometry;
input("parametres_du_cadran.txt", check=true, comment="#");
size(5cm,0);
file fich=input("parametres_du_cadran.txt");
real[] tab=fich; // On stocke l'ensemble des valeurs dans le tableau tab
real Phi=tab[0]; // la première valeur correspond à la latitude géographique
coordsys R=cartesiansystem((tab[1],tab[2]), i=(1,0), j=(0,1));
point o=point(R,(tab[1],tab[2])/R);
point p1=point(R,(tab[3],tab[4])/R);
point p2=point(R,(tab[5],tab[6])/R);
point p3=point(R,(tab[7],tab[8])/R);
point p4=point(R,(tab[9],tab[10])/R);
point p5=point(R,(tab[11],tab[12])/R);
conic co=conic (p1,p2,p3,p4,p5);
draw(co);
dot(p1, green);
dot(p2, green);
dot(p3, green);
dot(p4, green);
dot(p5, green);
dot(o,blue);
J'ai rentré manuellement les coordonnées des points (en nombre de pts) dans un fichier.txt que je lis via la commande input car c'est le seul moyen que j'ai trouvé pour récupérer ces points depuis l'image scannée du tracé. J'ai préalablement essayé pstoedit pour récupérer directement les coordonnées des points mais comme ils n'étaient justement pas considérés comme des points par Asymptote c'était assez compliqué.
GM a écrit :Une suggestion supplémentaire :Cela devrait renvoyer "ellipse", "parabola", "hyperbola" ou "degenerated".Code : Tout sélectionner
write(conictype( LaBqeDeTaDroleDeConique));
Apparement c'est une ellipse
En tout cas merci pour vos réponses, je vais tâcher d'utiliser vos indications à bon escient et me pencher sur l'équation de la conique
Y.M.
Re: Distance entre un point et une conique
Hippyom a écrit :Tout d'abord voici le code correspondant au dessin.
Oui mais ce que l'on aimerait, ce sont les 5 pairs... qui donnent cette jolie "ellip... atatoïde". .
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !