Page 1 sur 1

Plan complexe

Posté : ven. 31 mai 2013, 03:32
par boubamane
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);

Re: Plan complexe

Posté : ven. 31 mai 2013, 04:18
par maurice
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 !

Re: Plan complexe

Posté : ven. 31 mai 2013, 06:54
par boubamane
Merci c'est ce que je voulais avoir.

Re: Plan complexe

Posté : mar. 10 sept. 2013, 17:55
par boubamane
Bonsoir,
Comment faire disparaitre le coefficient 1 ou -1 devant i?

Re: Plan complexe

Posté : mar. 10 sept. 2013, 18:34
par GM
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));
    }
}

Re: Plan complexe

Posté : lun. 16 sept. 2013, 14:38
par boubamane
Bonjour,
Ca marche merci.
Que faut-il apprendre pour faire soit-même ce type de programme?

Re: Plan complexe

Posté : lun. 16 sept. 2013, 15:01
par GM
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.

Re: Plan complexe

Posté : lun. 16 sept. 2013, 17:52
par boubamane
Merci !!!