Plan complexe

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 !
boubamane
Messages : 52
Enregistré le : jeu. 23 févr. 2012, 01:03

Plan complexe

Message non lu par boubamane » ven. 31 mai 2013, 03:32

Bonjour,
sur la figure ci-dessous, je veux avoir -i,i,2i... à la place des ordonnées réelles.
Que dois-je faire?

Figure asymptote 09cc31bb1935847c832439497d7ca7ff
*** 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 graph_pi;
  3. import geometry;
  4. //usepackage("amsmath");
  5. unitsize(1cm);
  6. real xmin = -5.8, xmax = 4.5, ymin = -6.5, ymax = 6.8;
  7. pen gridstyle = linewidth(0.3) + gray + linetype("10 10"),
  8. stylo1 = defaultpen+black+linewidth(1.2),
  9. stylo2 = linewidth(2)+blue;
  10. limits((xmin,ymin),(xmax,ymax));
  11. xaxis(BottomTop,Ticks("%",extend=true, Step = 1, gridstyle));
  12. yaxis(LeftRight,Ticks("%",extend=true, Step = 1, gridstyle));
  13. Label laxis; laxis.p = fontsize(15);
  14. xaxis(xmin, xmax, stylo1, Ticks(laxis,NoZero, Step = 1,Size = 2,begin=false) ,Arrow(HookHead,5));
  15. yaxis(ymin, ymax, stylo1, Ticks(laxis,NoZero, Step = 1,Size = 2,begin=false) ,Arrow(HookHead,5));
  16. //labeloij(p=1.4bp+black,arrow=Arrow(HookHead,5bp),dot);
  17. //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  18. draw((2.5,1)--(1.5,3.5),1.5bp+purple,Arrow(HookHead,5));
  19. label("$\overrightarrow{w}$",(1.6,3.6),SE);
  20. draw((3,2)--(0.5,-3.5),red+linewidth(1.5));
  21. draw((0.5,-3.5)--(-5,-1),red+linewidth(1.5));
  22. //draw((-5,-1)--(3,2),brown+linewidth(1.5));
  23. draw((-5,-1)--(-2.5,4.5),red+linewidth(1.5));
  24. draw((-2.5,4.5)--(3,2),red+linewidth(1.5));
  25. draw((1.5,-6)--(0.5,-3.5),1.5bp+purple,Arrow(HookHead,5));
  26. draw((-2.5,4.5)--(1.5,6.),blue+linewidth(1.5));
  27. draw((1.5,6)--(3,2),blue+linewidth(1.5));
  28. //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  29. dot((1.5,6),5bp+blue);
  30. label("A", (1.5,6), NE );
  31. dot((1.5,-6),5bp+blue);
  32. label("B", (1.5,-6), SE );
  33. label("C", (-3,-0.25), NW );
  34. dot((3,2),5bp+blue);
  35. label("P", (3,2), E );
  36. dot((2.5,1),5bp+.5blue);
  37. dot((1.5,3.5),5bp+.5blue);
  38. dot((-5,-1),5bp+blue);
  39. label("R", (-5,-1), W );
  40. dot((0.5,-3.5),5bp+blue);
  41. label("Q", (0.5,-3.5), E );
  42. dot((-2.5,4.5),5bp+blue);
  43. label("S", (-2.5,4.5), NW );
  44. dot((0,0),5bp+black);
  45. label("O", (-.25,0), S );
  46. draw(arc((1.5,6),4.25,0,-180),1bp+blue+dashed);
  47. draw((2.5,1)--(1.5,-6),purple+dashed+linewidth(1));
  48. draw((1.5,3.5)--(0.5,-3.5),purple+dashed+linewidth(1));
  49. //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  50. //Codage Angle droit
  51. path carre=square((1.5,6),(1.15,5.87));
  52. draw(carre,1bp+blue);
  53. //dot((1.5,6)^^(1.15,5.87));
  54. //Homothétie
  55. draw((-3,-0.25)--(3,2),1.5bp+brown,Arrow(HookHead,5));
  56. draw((-3,-0.25)--(-5,-1),1.5bp+brown,Arrow(HookHead,5));
  57. dot((-3,-0.25),5bp+blue); //point C
  58. clip((xmin,ymin)--(xmin,ymax)--(xmax,ymax)--(xmax,ymin)--cycle);
PC: Ubuntu 14.4 - Asymptote 2.35 - gedit & texmaker - Texlive 2018

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

Re: Plan complexe

Message non lu par maurice » ven. 31 mai 2013, 04:18

Bonsoir,

J'ai modifié les lignes 14 et 15 (passage xaxis et yaxis --> yequals et xequals) et ajouter la ligne 16 :

Code : Tout sélectionner

 for(int k=floor(ymin); k<=floor(ymax); ++k) if (k!=0) labely(format("$%i \mathrm{i}$", k), k, W, fontsize(15pt));


Il y a sans doute d'autres solutions sans doute plus élégantes ...

Figure asymptote a1153d915ba507ea3b4970cee010129e
*** 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 graph_pi;
  3. import geometry;
  4. //usepackage("amsmath");
  5. unitsize(1cm);
  6. real xmin = -5.8, xmax = 4.5, ymin = -6.5, ymax = 6.8;
  7. pen gridstyle = linewidth(0.3) + gray + linetype("10 10"),
  8. stylo1 = defaultpen+black+linewidth(1.2),
  9. stylo2 = linewidth(2)+blue;
  10. limits((xmin,ymin),(xmax,ymax));
  11. xaxis(BottomTop,Ticks("%",extend=true, Step = 1, gridstyle));
  12. yaxis(LeftRight,Ticks("%",extend=true, Step = 1, gridstyle));
  13. Label laxis; laxis.p = fontsize(15);
  14. yequals(0,xmin, xmax, stylo1, Ticks(laxis,NoZero, Step = 1,Size = 2,begin=false) ,Arrow(HookHead,5));
  15. xequals(0, ymin, ymax, stylo1, Ticks("%",NoZero, Step = 1,Size = 2,begin=false) ,Arrow(HookHead,5));
  16. for(int k=floor(ymin); k<=floor(ymax); ++k) if (k!=0) labely(format("$%i \mathrm{i}$", k), k, W, fontsize(15pt));
  17. //labeloij(p=1.4bp+black,arrow=Arrow(HookHead,5bp),dot);
  18. //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  19. draw((2.5,1)--(1.5,3.5),1.5bp+purple,Arrow(HookHead,5));
  20. label("$\overrightarrow{w}$",(1.6,3.6),SE);
  21. draw((3,2)--(0.5,-3.5),red+linewidth(1.5));
  22. draw((0.5,-3.5)--(-5,-1),red+linewidth(1.5));
  23. //draw((-5,-1)--(3,2),brown+linewidth(1.5));
  24. draw((-5,-1)--(-2.5,4.5),red+linewidth(1.5));
  25. draw((-2.5,4.5)--(3,2),red+linewidth(1.5));
  26. draw((1.5,-6)--(0.5,-3.5),1.5bp+purple,Arrow(HookHead,5));
  27. draw((-2.5,4.5)--(1.5,6.),blue+linewidth(1.5));
  28. draw((1.5,6)--(3,2),blue+linewidth(1.5));
  29. //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  30. dot((1.5,6),5bp+blue);
  31. label("A", (1.5,6), NE );
  32. dot((1.5,-6),5bp+blue);
  33. label("B", (1.5,-6), SE );
  34. label("C", (-3,-0.25), NW );
  35. dot((3,2),5bp+blue);
  36. label("P", (3,2), E );
  37. dot((2.5,1),5bp+.5blue);
  38. dot((1.5,3.5),5bp+.5blue);
  39. dot((-5,-1),5bp+blue);
  40. label("R", (-5,-1), W );
  41. dot((0.5,-3.5),5bp+blue);
  42. label("Q", (0.5,-3.5), E );
  43. dot((-2.5,4.5),5bp+blue);
  44. label("S", (-2.5,4.5), NW );
  45. dot((0,0),5bp+black);
  46. label("O", (-.25,0), S );
  47. draw(arc((1.5,6),4.25,0,-180),1bp+blue+dashed);
  48. draw((2.5,1)--(1.5,-6),purple+dashed+linewidth(1));
  49. draw((1.5,3.5)--(0.5,-3.5),purple+dashed+linewidth(1));
  50. //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  51. //Codage Angle droit
  52. path carre=square((1.5,6),(1.15,5.87));
  53. draw(carre,1bp+blue);
  54. //dot((1.5,6)^^(1.15,5.87));
  55. //Homothétie
  56. draw((-3,-0.25)--(3,2),1.5bp+brown,Arrow(HookHead,5));
  57. draw((-3,-0.25)--(-5,-1),1.5bp+brown,Arrow(HookHead,5));
  58. dot((-3,-0.25),5bp+blue); //point C
  59. clip((xmin,ymin)--(xmin,ymax)--(xmax,ymax)--(xmax,ymin)--cycle);


Bruno

PS : graph_pi ne sert à rien ici, l'extension graph suffit !
Doc 3D
Si ça ne marche pas, essayez la version pdf

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

boubamane
Messages : 52
Enregistré le : jeu. 23 févr. 2012, 01:03

Re: Plan complexe

Message non lu par boubamane » ven. 31 mai 2013, 06:54

Merci c'est ce que je voulais avoir.
PC: Ubuntu 14.4 - Asymptote 2.35 - gedit & texmaker - Texlive 2018

boubamane
Messages : 52
Enregistré le : jeu. 23 févr. 2012, 01:03

Re: Plan complexe

Message non lu par boubamane » mar. 10 sept. 2013, 17:55

Bonsoir,
Comment faire disparaitre le coefficient 1 ou -1 devant i?
PC: Ubuntu 14.4 - Asymptote 2.35 - gedit & texmaker - Texlive 2018

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

Re: Plan complexe

Message non lu par GM » mar. 10 sept. 2013, 18:34

boubamane a écrit :Bonsoir,
Comment faire disparaitre le coefficient 1 ou -1 devant i?


Bonsoir

sans avoir tester (et en ayant fermé les yeux sur tout le reste du code) :

Remplacer :

Code : Tout sélectionner

for(int k=floor(ymin); k<=floor(ymax); ++k) if (k!=0) labely(format("$%i \mathrm{i}$", k), k, W, fontsize(15pt));

par

Code : Tout sélectionner

for(int k=floor(ymin); k<=floor(ymax); ++k)
{
    if (abs(k)>1)
        labely(format("$%i \mathrm{i}$", k), k, W, fontsize(15pt));
    else if (abs(k)==1)
    {
        string sign = (k==-1)?"$-$":"";
        labely(sign+"$\mathrm{i}$", k, W, fontsize(15pt));
    }
}
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 !

boubamane
Messages : 52
Enregistré le : jeu. 23 févr. 2012, 01:03

Re: Plan complexe

Message non lu par boubamane » lun. 16 sept. 2013, 14:38

Bonjour,
Ca marche merci.
Que faut-il apprendre pour faire soit-même ce type de programme?
PC: Ubuntu 14.4 - Asymptote 2.35 - gedit & texmaker - Texlive 2018

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

Re: Plan complexe

Message non lu par GM » lun. 16 sept. 2013, 15:01

boubamane a écrit :Que faut-il apprendre pour faire soit-même ce type de programme?

Je ne suis pas sûr de comprendre la question.

Il faut penser d'abord ce que l'on veut faire en langage naturel !

C'est ainsi que, pour la modification, je me suis dit que j'allais remplacer la ligne qui écrivait systématiquement

Code : Tout sélectionner

%i \mathrm{i}
(où %i est un entier (integer) prenant toutes les valeurs de k)

par :
si la valeur absolue de k est plus grande que 1
alors on laisse inchangé l'affichage prévu
sinon
si la valeur absolue de k est 1,
on définit une chaine de caractère sign qui est "-" ou "" (suivant que k=-1 ou k=1) et on affiche la concaténation de sign et \mathrm{i}.
finsi

finsi


puis il ne reste plus qu'à coder.
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 !

boubamane
Messages : 52
Enregistré le : jeu. 23 févr. 2012, 01:03

Re: Plan complexe

Message non lu par boubamane » lun. 16 sept. 2013, 17:52

Merci !!!
PC: Ubuntu 14.4 - Asymptote 2.35 - gedit & texmaker - Texlive 2018

Répondre