Point sur un disque et marquage d'un angle droit

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 !
Fabrice
Messages : 118
Enregistré le : sam. 13 mars 2010, 11:41

Point sur un disque et marquage d'un angle droit

Message non lu par Fabrice » lun. 24 sept. 2018, 19:25

Bonsoir,
Asymptote ce n'est pas tout à fait comme le vélo, car j'ai beaucoup oublié !
Le but est de reproduire la figure jointe en image. Mon soucis est double : l'angle droit et le rayon du disque de couleur orange. En effet, je ne sais pas comment colorier un disque et donc, j'ai choisi de colorier un arc. Seulement, le point ne se trouve pas sur l'arc.

Figure asymptote bb8b69ca8a2f0a42da96b7055e310638
*** 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 geometry;
  2. unitsize(0.8cm,0);
  3. point A=(4,0);
  4. point B=(8,0);
  5. point C=(4,-4);
  6. point D=(-3,0);
  7. point E=(3*cos(65),3*sin(65));
  8. filldraw(arc(A,4,0,270)--C--A--B--cycle,green,black+1.5bp);
  9. filldraw(arc(D,3,0,360)--cycle,orange,black+1bp);
  10. dot(D);
  11. draw(D--E);
  12. distance("4 cm",A,B);
  13. distance("4 cm",A,C);

Merci.
Fabrice
http://image.noelshack.com/fichiers/201 ... -0712.jpg
Debian Strech + Asymptote 2.42-12 + Emacs24 + TeXLive 2017

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

Re: Point sur un disque et marquage d'un angle droit

Message non lu par GM » lun. 24 sept. 2018, 20:35

Bonsoir Fabrice,

le problème est que tu as oublié de définir ton point E à l'aide de D et oublié que les angles sont en radians.
Comme E est une variable déjà définie par défaut dans Asymptote pour définir l'EST, je l'ai remplacé.
J'ai utilisé aussi unitcircle pour le cercle.

Figure asymptote fce96f85df20acd0d39eb02d28b88695
*** 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 geometry;
  2. unitsize(0.8cm,0);
  3. point A=(4,0);
  4. point B=(8,0);
  5. point C=(4,-4);
  6. point D=(-3,0);
  7. real rayon = 3;
  8. real theta = pi/3;
  9. point M= D+(rayon*cos(theta),rayon*sin(theta));
  10. path cercle = shift(D)*scale(rayon)*unitcircle;
  11. filldraw(arc(A,4,0,270)--C--A--B--cycle,green,black+1.5bp);
  12. filldraw(cercle,orange,black+1bp);
  13. dot(D);
  14. draw("$x$",D--M,Arrows);
  15. distance("4 cm",A,B);
  16. distance("4 cm",A,C);
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 !

Fabrice
Messages : 118
Enregistré le : sam. 13 mars 2010, 11:41

Re: Point sur un disque et marquage d'un angle droit

Message non lu par Fabrice » lun. 24 sept. 2018, 22:18

Bonsoir Gaetan,
Merci, je vais m'y remettre sérieusement car j'ai un peu délaissé au profit de TikZ.
Fabrice
Debian Strech + Asymptote 2.42-12 + Emacs24 + TeXLive 2017

Fabrice
Messages : 118
Enregistré le : sam. 13 mars 2010, 11:41

Re: Point sur un disque et marquage d'un angle droit

Message non lu par Fabrice » mer. 26 sept. 2018, 09:30

Bonjour Gaetan,
Encore une petite question sur ce code : est-il possible avec la routine distance() de n'avoir que le texte ("4 cm") ?
Merci.
Fabrice
Debian Strech + Asymptote 2.42-12 + Emacs24 + TeXLive 2017

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

Re: Point sur un disque et marquage d'un angle droit

Message non lu par GM » mer. 26 sept. 2018, 14:33

Fabrice a écrit :
mer. 26 sept. 2018, 09:30
Bonjour Gaetan,
Encore une petite question sur ce code : est-il possible avec la routine distance() de n'avoir que le texte ("4 cm") ?
Merci.
Fabrice
Bonjour,

Après un petit tour dans geometry.asy pour vérifier la signature de la fonction distance

Code : Tout sélectionner

void distance(picture pic = currentpicture, Label L = "", point A, point B,
              bool rotated = true, real offset = 3mm,
              pen p = currentpen, pen joinpen = invisible,
              arrowbar arrow = Arrows(NoFill))
j'ai tenté cela avec succès :

Code : Tout sélectionner

distance(Label("4 cm",blue),A,C, p=invisible);
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 !

Fabrice
Messages : 118
Enregistré le : sam. 13 mars 2010, 11:41

Re: Point sur un disque et marquage d'un angle droit

Message non lu par Fabrice » mer. 26 sept. 2018, 16:44

Bonjour Gaetan,
Merci pour l'aide apportée. J'en ai profité pour parcourir un peu la documentation afin d'y ajouter un angle droit. Pour être complet, je souhaiterais, si possible, remplacer le point par une croix.
Fabrice

Figure asymptote c985db7628e1852df9c42120b85692d3
*** 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 geometry;
  2. unitsize(0.8cm,0);
  3. point A=(4,0);
  4. point B=(8,0);
  5. point C=(4,-4);
  6. point D=(-3,0);
  7. real rayon = 3;
  8. real theta = pi/3;
  9. point M= D+(rayon*cos(theta),rayon*sin(theta));
  10. path cercle = shift(D)*scale(rayon)*unitcircle;
  11. line AB=line(A,B);
  12. line AC=line(A,C);
  13. perpendicularmark(AB,AC, quarter=4,size=0.4cm, Fill(paleblue));
  14. filldraw(arc(A,4,0,270)--C--A--B--cycle,green,black+1.5bp);
  15. filldraw(cercle,orange,black+1bp);
  16. dot(D);
  17. draw("$x$",D--M,Arrows);
  18. distance(Label("4 cm",black),A,B, p=invisible);
  19. distance(Label("4 cm",black),C,A, p=invisible);
  20.  
Debian Strech + Asymptote 2.42-12 + Emacs24 + TeXLive 2017

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

Re: Point sur un disque et marquage d'un angle droit

Message non lu par GM » mer. 26 sept. 2018, 18:21

Une source d'inspiration :

Figure asymptote 2d9c8f278344901b6e30cab246ee2052
*** 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. marker croix1=marker(scale(2)*cross(4),1bp+blue);
  2. marker croix2=marker(scale(2)*rotate(45)*cross(4),1bp+red);
  3.  
  4. import geometry;
  5. unitsize(0.8cm,0);
  6. point A=(4,0);
  7. point B=(8,0);
  8. point C=(4,-4);
  9. point D=(-3,0);
  10. real rayon = 3;
  11. real theta = pi/3;
  12. point M= D+(rayon*cos(theta),rayon*sin(theta));
  13. path cercle = shift(D)*scale(rayon)*unitcircle;
  14. line AB=line(A,B);
  15. line AC=line(A,C);
  16. perpendicularmark(AB,AC, quarter=4,size=0.4cm, Fill(paleblue));
  17. filldraw(arc(A,4,0,270)--C--A--B--cycle,green,black+1.5bp);
  18. filldraw(cercle,orange,black+1bp);
  19. draw(D,croix2);
  20. draw(M,croix1);
  21. draw("$x$",D--M,Arrows);
  22. // distance(Label("4 cm",black),A,B, p=invisible);
  23. // distance(Label("4 cm",black),C,A, p=invisible);
  24. draw(Label("4 cm",Relative(.5),align=RightSide),segment(AB));
  25. draw(Label("4 cm",Relative(.5),align=LeftSide),segment(AC));


A noter que si tu n'utilises pas les flèches et lignes de rappel pour les cotations, alors tu peux te passer de distance comme ci-dessus.
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 !

Fabrice
Messages : 118
Enregistré le : sam. 13 mars 2010, 11:41

Re: Point sur un disque et marquage d'un angle droit

Message non lu par Fabrice » mer. 26 sept. 2018, 19:03

Re,
Merci beaucoup.
Fabrice
Debian Strech + Asymptote 2.42-12 + Emacs24 + TeXLive 2017

Répondre