[Résolu]tangent: no matching function 'tangent(path, point)'

Pour toute demande d'aide sur des exemples non finalisés, c'est ici.
Les exemples aboutis et intéressants seront ajoutés aux sous-forums qui suivent.

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 :

  1. Nom du système d'exploitation (W7 ou Ubuntu 12.04 ou ...)
  2. Version d'Asymptote et éditeur utilisé pour les figures Asymptote
  3. Distribution LaTeX et éditeur utilisé pour les tex.


On va gagner du temps dans les réponses !
maurice
Messages : 262
Enregistré le : jeu. 25 mars 2010, 13:00
Contact :

[Résolu]tangent: no matching function 'tangent(path, point)'

Message non lu par maurice » mar. 13 avr. 2010, 16:03

bonjour, j'essaie de faire un dessin : 1 cercle et deux tangentes :

Code : Tout sélectionner

   import geometry;

   //taille de l'image
   size(7cm,0);
   
   //Cercle C et point M sur le cercle
   draw(unitcircle);
   pair pM=(1*dir(130)), pO=(0,0);
   dot("$M$",pM,NW);
   dot("$O$",pO,E);   

        //droite (OM) et médiatrice de [OM]
   draw(line(pM,pO));
   line medAB=bisector(pM,pO);
   draw (medAB);
   
   //intersection de la médiatrice et du cercle ; tracé des tangentes
   path cerc=unitcircle, droite=rotate(90,(pM+pO)/2)*(interp(pM,pO,-2)--interp(pM,pO,2));
   point[] inter=intersectionpoints(cerc,droite);
   dot("$P_1$",inter[0],N);
   dot("$P_2$",inter[1],W);
   draw(tangent(cerc,inter[0]));


La compilation donne :

Code : Tout sélectionner

$ asy transformations_ex.asy
transformations_ex.asy: 82.13: no matching function 'tangent(path, point)'


Je ne comprends pas. je prend le code des sites http://www.marris.org ethttp://www.piprime.fr/files/asymptote/geometry/index.html

merci de votre aide

maurice
Modifié en dernier par maurice le mar. 13 avr. 2010, 19:15, modifié 1 fois.
Doc 3D
Si ça ne marche pas, essayez la version pdf

Fedora 23 -- Asymptote 2.35 -- TeXlive 2013 -- emacs et/ou gedit

Avatar du membre
chellier
Messages : 104
Enregistré le : jeu. 18 mars 2010, 17:30

Re: tangent : no matching function 'tangent(path, point)'

Message non lu par chellier » mar. 13 avr. 2010, 17:00

La syntaxe est tangent(circle c, point M).
Il faut remplacer

Code : Tout sélectionner

path cerc=unitcircle

par

Code : Tout sélectionner

circle cerc=circle(pO,1);


Pour que ça compile chez moi, j'ai dû en plus me passer de interp :

Code : Tout sélectionner

import geometry;
import math;
//taille de l'image
size(7cm,0);

//Cercle C et point M sur le cercle
draw(unitcircle);
pair pM=(1*dir(130)), pO=(0,0);
dot("$M$",pM,NW);
dot("$O$",pO,E);

//droite (OM) et médiatrice de [OM]
draw(line(pM,pO));
line medAB=bisector(pM,pO);
draw(medAB);

//intersection de la médiatrice et du cercle ; trace des tangentes
circle cerc=circle(pO,1);
line droite=rotate(90,(pM+pO)/2)*line(pM,pO);
point[] inter=intersectionpoints(droite,cerc);
dot("$P_1$",inter[0],N);
dot("$P_2$",inter[1],W);
draw(tangent(cerc,inter[0]));

addMargins(2cm,2cm);


Christophe
Modifié en dernier par chellier le mar. 13 avr. 2010, 20:16, modifié 1 fois.

maurice
Messages : 262
Enregistré le : jeu. 25 mars 2010, 13:00
Contact :

Re: tangent : no matching function 'tangent(path, point)'

Message non lu par maurice » mar. 13 avr. 2010, 18:02

Merci, ca marche, il va falloir que j'ai les yeux en face des trous pour bien lire les exemples !

maurice
Doc 3D
Si ça ne marche pas, essayez la version pdf

Fedora 23 -- Asymptote 2.35 -- TeXlive 2013 -- emacs et/ou gedit

Avatar du membre
GM
Administrateur du site
Administrateur du site
Messages : 1512
Enregistré le : dim. 7 mars 2010, 14:50

Re: [Résolu]tangent: no matching function 'tangent(path, poi

Message non lu par GM » sam. 17 avr. 2010, 15:07

Ca y est... après une semaine d'absence, je viens de rentrer et de remonter le pc. :-)
Je relis les messages de la semaine en commençant par celui-ci... et j'y vais de mon commentaire.

Il y avait plusieurs façons de faire la figure : tout dépend si on se sert de l'extension geometry ou pas.

Il faut comprendre qu'il existait des possibilités d'intersection et de tracer une tangente avant que l'extension de Philippe soit intégrée à Asymptote...
... et donc depuis l'intégration, on a parfois plusieurs méthodes : travailler avec pair/path (sans geometry) ou point/line/circle (avec geometry).

Ainsi la ligne suivante posait problème ... car elle était un mélange des deux.
point[] inter=intersectionpoints(droite,cerc);

Il ne pouvait y avoir de tangente... puisque déjà l'intersection posait problème.

Il a été suggéré de faire en sorte que cerc soit de type circle... mais on pouvait pour obtenir les points d'intersection remplacer aussi point[] par pair[].

Des exemples d'intersection ici : il faudrait que j'en ajoute davantage utilisant geometry... mais surtout que je mette en garde sur tous les premiers exemples sur le fait qu'il s'agit de possibilités sans geometry à distinguer de celles avec l'extension de Philippe.
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 !

Répondre