arctime

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 !
zariski
Messages : 141
Enregistré le : dim. 30 sept. 2012, 18:50

arctime

Message non lu par zariski » sam. 17 nov. 2012, 11:15

Bonjour !
Que fait la commande : real arctime(path p, real L); svp ?

J'ai bien fait une traduction mais encore une fois je doute de mon travail !
Windows 11- Ubuntu 20.10 - WinEdit - TexStudio - TeXMaker - TeXLive2022

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

Re: arctime

Message non lu par GM » sam. 17 nov. 2012, 14:53

Bonjour,

Il y a un exemple explicatif dans la galerie et je crois bien qu'il en a déjà été question sur le forum.

Mais voilà un nouvel exemple :

Figure asymptote 97ce5ae23defc30e2e85e04e52c3e1e0
*** 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
  1. size(400);
  2. marker croix=marker(scale(2)*cross(4),1bp+green);
  3.  
  4. real a = 2, longueur = 5;
  5. path p1=(0,0)--(1,0)--(longueur,0),
  6. p2=(0,0)--(4,0)--(longueur,0);
  7. transform t = shift(0,-a);
  8.  
  9. draw(p1,red,dot(10bp+black));
  10. draw(t*p2,blue,dot(10bp+black));
  11.  
  12. for (real k=0; k<=length(p1); k+=0.5) {
  13. draw(Label(format("%.1f",k)),point(p1,k),2N,red,croix);
  14. draw(Label(format("%.1f",k)),t*point(p2,k),2S,blue,croix);
  15. }
  16. pair centreimage = (longueur/2,-a/2);
  17. label("2 chemins de même longueur (L="+string(arclength(p1))+") d\'efinis par 3 points noirs diff\'erents.",centreimage,N);
  18. label("Les nombres color\'es sont le \textit{time} des points marqu\'es d'une croix.",centreimage,S);
  19. label("Le milieu du premier segment a pour \textit{time} : "+string(arctime(p1,longueur/2)),centreimage,10N,red);
  20. label("Le milieu du second segment a pour \textit{time} : "+string(arctime(p2,longueur/2)),centreimage,10S,blue);
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 !

zariski
Messages : 141
Enregistré le : dim. 30 sept. 2012, 18:50

Re: arctime

Message non lu par zariski » lun. 19 nov. 2012, 16:17

Je suis toujours aussi ravi d'avoir des réponses aussi rapidement, MERCI.
J'ai longtemps réflêchi à cette notion d'arctime ... Je pense avoir compris; quant à l'utilité, y en a surement une ... :oops:
Voici un petit topo de mon cru, corrigez moi svp si j'ai dit des bêtises.

Figure asymptote 82a0aeeb4d2d870e95b7ca902a947368
*** 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
  1. unitsize(1cm);
  2.  
  3. marker croix=marker(scale(2)*cross(4),1bp+green),
  4. tiret=marker((0,-1)--(0,1),black);
  5. real L=10;
  6. path p1=(0,0)--(2,0)--(6,0)--(L,0),
  7. p2=(0,0)--(4,0)--(7,0)--(L,0);
  8.  
  9. transform t = shift(0,-2);
  10.  
  11. draw(p1,red,dot(6bp+black));
  12.  
  13. draw(t*p2,blue,dot(6bp+black));
  14.  
  15. for (real k=0; k<=length(p1); k+=1) {
  16.  
  17. draw(Label(format("%.1f",k)),point(p1,k),2N,red,croix);
  18.  
  19. draw(Label(format("%.1f",k)),t*point(p2,k),2N,blue,croix);
  20. }
  21.  
  22. for (real k=0; k<=L; k+=1) {
  23.  
  24. draw(Label(format("%.1f",k)),(k,0),2S,tiret);
  25.  
  26. draw(Label(format("%.1f",k)),t*(k,0),2S,tiret);
  27. }
  28.  
  29. label(scale(0.8)*("Deux chemins de m\^eme longueur (L="+string(arclength(p1))+") d\'efinis par 4 points noirs diff\'erents."),(0,-3.4),E);
  30.  
  31. label(scale(0.8)*(string(arctime(p1,0)) + " est le time du point de p1 \`a la distance " + string(arclength((0,0)-(0,0)))),(5,-4),W,red);
  32. label(scale(0.8)*(string(arctime(p1,L/2)) + " est le time du point de p1 \`a la distance " + string(arclength(scale(0.5)*p1))),(5,-5),W,red);
  33. label(scale(0.8)*(string(arctime(p1,0.8*L)) + " est le time du point de p1 \`a la distance " + string(arclength(scale(0.8)*p1))),(5,-6),W,red);
  34. label(scale(0.8)*(string(arctime(p1,L)) + " est le time du point de p1 \`a la distance " + string(arclength(scale(1)*p1))),(5,-7),W,red);
  35.  
  36. label(scale(0.8)*(string(arctime(p2,0)) + " est le time du point de p2 \`a la distance " + string(arclength(scale(0)*p2))),(5,-4),E,blue);
  37. label(scale(0.8)*(string(arctime(p2,L/2)) + " est le time du point de p2 \`a la distance " + string(arclength(scale(0.5)*p2))),(5,-5),E,blue);
  38. label(scale(0.8)*(string(arctime(p2,0.8*L)) + " est le time du point de p2 \`a la distance " + string(arclength(scale(0.8)*p2))),(5,-6),E,blue);
  39. label(scale(0.8)*(string(arctime(p2,L)) + " est le time du point de p2 \`a la distance " + string(arclength(scale(1)*p2))),(5,-7),E,blue);
  40.  
  41. shipout(bbox(0.5mm,white));
Windows 11- Ubuntu 20.10 - WinEdit - TexStudio - TeXMaker - TeXLive2022

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

Re: arctime

Message non lu par GM » lun. 19 nov. 2012, 20:57

zariski a écrit :corrigez moi svp si j'ai dit des bêtises.

Je conseillerai plutôt d'écrire : ... le time du point de p1 à une distance curviligne 5 de son point origine.

Figure asymptote 8b4b79f88a5607aba292225593b16e38
*** 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
  1. import markers;
  2. unitsize(100);
  3. path p=unitcircle;
  4. draw(p,dot);
  5. pair pM=point(p,arctime(p,1));
  6. dot(string(arctime(p,1)),pM,5bp+red);
  7. draw((1,0)--(0,0)--pM{dir(-I*pM)}..{-I}cycle,StickIntervalMarker(3,2,blue,dotframe(.8green)));
  8. label("$\frac{2}{\pi} \approx$ "+string(2/pi),truepoint(NE),NW);


unitcircle (de longueur théorique 2\pi) étant défini par 4 "noeuds" et formé de ce que je vais appeler 4 "sections",
le point rouge correspondant à une distance curviligne de 1 depuis le point de coordonnées (1;0) (et permettant donc de définir un secteur angulaire de 1 radian) a un time d'environ 0,6395 : il est situé à 63,95% de la première section depuis le point (1;0).

On constatera que l'on n'obtient pas une valeur approchée aussi proche de la valeur théorique de \frac{2}{\pi} qu'on aurait pu l'imaginer.
\ds\begin{array}{|c|c|}\hline\frac{\pi}{2}&100\%\\\hline1&\frac{2}{\pi}\approx63,661977\%\\\hline\end{array}

J'imagine qu'une partie de l'erreur est imputable au fait que unitcircle manque de précision avec ses (seulement) 4 noeuds.
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 !

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

Re: arctime

Message non lu par GM » lun. 19 nov. 2012, 23:36

GM a écrit :On constatera que l'on n'obtient pas une valeur approchée aussi proche de la valeur théorique de \frac{2}{\pi} qu'on aurait pu l'imaginer.
\ds\begin{array}{|c|c|}\hline\frac{\pi}{2}&100\%\\\hline1&\frac{2}{\pi}\approx63,661977\%\\\hline\end{array}

J'imagine qu'une partie de l'erreur est imputable au fait que unitcircle manque de précision avec ses (seulement) 4 noeuds.


On augmente la précision en définissant le cercle avec huit points :

Figure asymptote 8d9be2c7c08ef2ef1d83cb062b25e223
*** 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
  1. import graph;
  2. import markers;
  3. unitsize(100);
  4. int n0=8;
  5. path p=Circle(c=(0,0),r=1,n=4*n0);
  6. draw(p,dot);
  7. pair pM=point(p,arctime(p,1));
  8. dot(string(arctime(p,1)),pM,5bp+red);
  9. draw((1,0)--(0,0)--pM{dir(-I*pM)}..{-I}cycle,StickIntervalMarker(3,2,blue,dotframe(.8green)));
  10. label(format("$\frac{2}{\pi}\times %i \approx$ ",n0)+string(2/pi*n0),truepoint(NE),NW);

... et là, on constate que l'écart entre le time effectif et sa valeur théorique est plus petit.

Et avec 10 fois plus de points, on gagne encore en précision :

Figure asymptote 70789384ca06467256d823f71b022063
*** 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
  1. import graph;
  2. import markers;
  3. unitsize(100);
  4. int n0=80;
  5. path p=Circle(c=(0,0),r=1,n=4*n0);
  6. draw(p,dot);
  7. pair pM=point(p,arctime(p,1));
  8. dot(string(arctime(p,1)),pM,5bp+red);
  9. draw((1,0)--(0,0)--pM{dir(-I*pM)}..{-I}cycle,StickIntervalMarker(3,2,blue,dotframe(.8green)));
  10. label(format("$\frac{2}{\pi}\times %i \approx$ ",n0)+string(2/pi*n0),truepoint(NE),NW);
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 !

zariski
Messages : 141
Enregistré le : dim. 30 sept. 2012, 18:50

Re: arctime

Message non lu par zariski » lun. 19 nov. 2012, 23:51

arghhhhh !! Ca va bien finir par rentrer !! :)
Merci^10
Windows 11- Ubuntu 20.10 - WinEdit - TexStudio - TeXMaker - TeXLive2022

Répondre