Page 1 sur 2

Graduations et parallèles

Posté : ven. 30 sept. 2022, 19:25
par Viserion
Bonsoir Gaëtan,
L'idée est de reproduire la figure en sachant, sauf erreur de ma part, que les abscisses des points U et P sont respectivement -\dfrac{5}{7} et \sqrt{13}.
Mon problème est de tracer les deux parallèles rouges à partir de deux graduations.
Merci.
Fabrice

Figure asymptote 09b33ac4467de9bc61468fb65f4a4e4b
*** 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. import markers;
  3.  
  4. settings.tex="pdflatex";
  5.  
  6. size(10cm,0);
  7.  
  8. point pA=(-1,0),pB=(sqrt(13),0), pC=(0,0),
  9. pD=(1,0), pE=(0,-3), pF=(2,-3), pG=(2,0),
  10. pH=(-5/7,0), pI=(2,-2);
  11.  
  12. line d1=line(pE,pF);
  13. line d2=line(pG,pF);
  14. line d3=line(pA,pB);
  15. line d4=line(pG,pF);
  16. line d5=line(pC,pE);
  17. line d6=line(pC,pI);
  18.  
  19. perpendicularmark(d1,d2,Fill(green),quarter=2,size=0.2cm);
  20. perpendicularmark(d2,d3,Fill(green),quarter=4,size=0.2cm);
  21. perpendicularmark(d1,d5,Fill(green),quarter=1,size=0.2cm);
  22. perpendicularmark(d3,d5,Fill(green),quarter=4,size=0.2cm);
  23.  
  24. draw(pC--pE--pF--pG);
  25. draw(d3);
  26.  
  27. draw(arc(pC,sqrt(13),-56.3099,0));
  28. draw(pC--pF,orange);
  29. draw(d6,blue+white);
  30. transform t=shift(pC-pI);
  31. path q = pC -- t*pC;
  32.  
  33. draw(q,invisible,StickIntervalMarker(7,1,blue,angle=-15,size=1mm,space=1mm));
  34. label("3",(pC+pE)/2,W);
  35. label("2",(pF+pE)/2,S);
  36. dot("$O$",pC,N);
  37. dot("$I$",pD,N);
  38. dot("P",pB,N);
  39. dot("U",pH,SE);
  40. dot("$-1$",pA,SW);
  41.  
  42. linemargin =-2cm;
  43. addMargins(.5cm,.5cm);


Image

Re: Graduations et parallèles

Posté : ven. 30 sept. 2022, 20:48
par GM
Bonsoir,
est-il possible d'avoir une copie du texte de l'énoncé ?
car la reproduction ci-dessus des graduations me semble bizarre
et j'ai besoin de m'approprier le sujet avant de regarder ton code.

Re: Graduations et parallèles

Posté : ven. 30 sept. 2022, 20:55
par GM
GM a écrit :
ven. 30 sept. 2022, 20:48
Bonsoir,
est-il possible d'avoir une copie du texte de l'énoncé ?
car la reproduction ci-dessus des graduations me semble bizarre
et j'ai besoin de m'approprier le sujet avant de regarder ton code.
Je crois deviner que ce sont des points de la droite d'équation y=-x
mais quel est censé être l'espacement des points sur cette droite : l'info ne me semble pas y être.

Re: Graduations et parallèles

Posté : ven. 30 sept. 2022, 21:29
par Viserion
Bonsoir,
Je ne crois pas que l'énoncé va aider, mais le voici :

"La droite graduée suivante est munie d'un repère (O ; I) et les droites rouges sont parallèles. Déterminer les abscisses des points U et P."

Merci.
Fabrice

Re: Graduations et parallèles

Posté : ven. 30 sept. 2022, 21:32
par GM
Viserion a écrit :
ven. 30 sept. 2022, 21:29
Bonsoir,
Je ne crois pas que l'énoncé va aider, mais le voici :

"La droite graduée suivante est munie d'un repère (O ; I) et les droites rouges sont parallèles. Déterminer les abscisses des points U et P."

Merci.
Fabrice
Si, cela me permet de comprendre que l'on peut faire n'importe quoi comme espacement de graduation.
Je te prépare une réponse.

Re: Graduations et parallèles

Posté : ven. 30 sept. 2022, 21:41
par GM
GM a écrit :
ven. 30 sept. 2022, 21:32
Je te prépare une réponse.
... mais je change tout car
  1. ceci est très perturbant :

    Code : Tout sélectionner

    dot("$O$",pC,N);
    dot("$I$",pD,N);
    dot("P",pB,N);
    dot("U",pH,SE);
    Pourquoi pB n'est pas B, pI n'est pas I, etc...
  2. Je me dis que c'est un exercice où il faut construire U et P, sans avoir calculé préalablement leurs abscisses, et sans avoir calculé manuellement l'angle de l'arc de cercle !
  3. On peut en faire une figure qui dépendra de paramètres pour pouvoir faire plusieurs versions différentes du même exercice.

Re: Graduations et parallèles

Posté : ven. 30 sept. 2022, 22:43
par GM

Figure asymptote 216b6797f8686f470b5a6e795b3337ec
*** 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. import markers;
  3. settings.tex="pdflatex";
  4.  
  5. size(8cm,0);
  6.  
  7. // Paramètres de la figure
  8. real theta = 135; // Angle de la droite bleue
  9. real esp = 0.25; // Espacement des graduations
  10.  
  11. point pO =(0,0), pA=(0,-3), pB=(2,-3), pC=(2,0), pE=(-1,0);
  12. path rect = pO--pA--pB--pC--cycle;
  13.  
  14. line dOA=line(pO,pA), dAB=line(pA,pB), dBC=line(pB,pC), dCO=line(pC,pO),
  15. droitebleue = line(pO,dir(theta)),
  16. drouge1 = line(pE,7*esp*dir(theta)),
  17. drouge2 = parallel(5*esp*dir(theta),drouge1);
  18.  
  19. point pU=intersectionpoint(drouge2,dCO);
  20.  
  21. circle c = circle (pO, abs(pB-pO));
  22. point pP = intersectionpoints(c,dCO)[1];
  23.  
  24. draw(rect);
  25. perpendicularmark(dOA,dAB,Fill(green),quarter=2,size=0.2cm);
  26. perpendicularmark(dAB,dBC,Fill(green),quarter=2,size=0.2cm);
  27. perpendicularmark(dBC,dCO,Fill(green),quarter=2,size=0.2cm);
  28. perpendicularmark(dCO,dOA,Fill(green),quarter=2,size=0.2cm);
  29. draw(dCO);
  30. draw(droitebleue,blue+white);
  31.  
  32. draw(pO--pC,invisible,StickIntervalMarker(2,2,red,angle=-15,size=1mm,space=1mm));
  33.  
  34. // Points de la droite bleue
  35. for(int k=0; k<=7; ++k) dot(k*esp*dir(theta));
  36. // et le codage
  37. draw(pO--7*esp*dir(theta),invisible,StickIntervalMarker(7,1,blue,angle=-15,size=1mm,space=1mm));
  38.  
  39. draw(arccircle(pO,pB,aTan(3/2)));
  40. draw(pO--pB,orange);
  41. draw(drouge1^^drouge2,red);
  42.  
  43. dot("$O$",pO,N);
  44. dot("$I$",(pO+pC)/2,N);
  45. dot("P",pP,N);
  46. dot("U",pU,SE);
  47. dot("$-1$",pE,SW);
  48. label("3",(pO+pA)/2,W);
  49. label("2",(pA+pB)/2,S);
  50.  
  51. linemargin =-0.5cm;
  52. addMargins(.5cm,.5cm);


Figure asymptote 2c06cbda51bf044813603891d80c4393
*** 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. import markers;
  3. settings.tex="pdflatex";
  4.  
  5. size(8cm,0);
  6.  
  7. // Paramètres de la figure
  8. real theta = 80; // Angle de la droite bleue
  9. real esp = 0.4; // Espacement des graduations
  10.  
  11. point pO =(0,0), pA=(0,-3), pB=(2,-3), pC=(2,0), pE=(-1,0);
  12. path rect = pO--pA--pB--pC--cycle;
  13.  
  14. line dOA=line(pO,pA), dAB=line(pA,pB), dBC=line(pB,pC), dCO=line(pC,pO),
  15. droitebleue = line(pO,dir(theta)),
  16. drouge1 = line(pE,7*esp*dir(theta)),
  17. drouge2 = parallel(5*esp*dir(theta),drouge1);
  18.  
  19. point pU=intersectionpoint(drouge2,dCO);
  20.  
  21. circle c = circle (pO, abs(pB-pO));
  22. point pP = intersectionpoints(c,dCO)[1];
  23.  
  24. draw(rect);
  25. perpendicularmark(dOA,dAB,Fill(green),quarter=2,size=0.2cm);
  26. perpendicularmark(dAB,dBC,Fill(green),quarter=2,size=0.2cm);
  27. perpendicularmark(dBC,dCO,Fill(green),quarter=2,size=0.2cm);
  28. perpendicularmark(dCO,dOA,Fill(green),quarter=2,size=0.2cm);
  29. draw(dCO);
  30. draw(droitebleue,blue+white);
  31.  
  32. draw(pO--pC,invisible,StickIntervalMarker(2,2,red,angle=-15,size=1mm,space=1mm));
  33.  
  34. // Points de la droite bleue
  35. for(int k=0; k<=7; ++k) dot(k*esp*dir(theta));
  36. // et le codage
  37. draw(pO--7*esp*dir(theta),invisible,StickIntervalMarker(7,1,blue,angle=-15,size=1mm,space=1mm));
  38.  
  39. draw(arccircle(pO,pB,aTan(3/2)));
  40. draw(pO--pB,orange);
  41. draw(drouge1^^drouge2,red);
  42.  
  43. dot("$O$",pO,N);
  44. dot("$I$",(pO+pC)/2,N);
  45. dot("P",pP,N);
  46. dot("U",pU,SE);
  47. dot("$-1$",pE,SW);
  48. label("3",(pO+pA)/2,W);
  49. label("2",(pA+pB)/2,S);
  50.  
  51. linemargin =-0.5cm;
  52. addMargins(.5cm,.5cm);

Re: Graduations et parallèles

Posté : ven. 30 sept. 2022, 22:44
par GM
On pourrait faire mieux en mettant en paramètres les nombres 5 et 7 pour modifier le rapport 5/7.

Re: Graduations et parallèles

Posté : sam. 1 oct. 2022, 00:26
par GM
Avant de supprimer l'exemple de mon PC, j'ai ajouté deux paramètres de réglage :
  • le choix de l'abscisse de U à trouver : x_U=-\dfrac{a}{b}
  • les dimensions du rectangle
ainsi que quelques commentaires pour expliquer.

Figure asymptote 764d34e093c7243ddd6566da842008e1
*** 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. import markers;
  3. settings.tex="pdflatex";
  4.  
  5. size(8cm,0);
  6.  
  7. //---------------------------------------------------
  8. //--------- Paramètres de la figure
  9. //---------------------------------------------------
  10. real theta = 140; // Angle de la droite bleue
  11. real esp = 0.4; // Espacement des graduations
  12. int a=4, b=3; // Rapport a/b relatif aux graduations, avec a>b
  13. real larg=2, haut=4; // Dimensions du rectangle
  14. //---------------------------------------------------
  15.  
  16. // Définition des points O, A, B, C et E
  17. point pO =(0,0), pA=(0,-haut), pB=(larg,-haut), pC=(larg,0), pE=(-1,0);
  18.  
  19. // Définition du rectangle OABC
  20. path rectOABC = pO--pA--pB--pC--cycle;
  21.  
  22. // Définition des droites relatives au rectangle OABC
  23. line dOA=line(pO,pA), dAB=line(pA,pB), dBC=line(pB,pC), dCO=line(pC,pO);
  24. // La droite bleue passant par le point O est le point de coordonnées polaires (1;theta)
  25. line droitebleue = line(pO,dir(theta));
  26.  
  27. // La droite rouge 1 qui passe par le point E(-1,0) et le point de coordonnées polaires (a*esp;theta)
  28. line drouge1 = line(pE,a*esp*dir(theta));
  29. // La droite rouge 2 qui est parallèle à drouge1 et passe par point de coordonnées polaires (b*esp;theta)
  30. line drouge2 = parallel(b*esp*dir(theta),drouge1);
  31.  
  32. // Le point U à l'intersection des droites "drouge1" et (OC)
  33. point pU=intersectionpoint(drouge2,dCO);
  34.  
  35. // Définition de P à l'intersection du cercle de centre O passant par B
  36. // et de la droite (OC)
  37. circle c = circle (pO, abs(pB-pO));
  38. point pP = intersectionpoints(c,dCO)[1]; // [0] ou [1] selon le point d'intersection voulu
  39.  
  40. draw(rectOABC);
  41. perpendicularmark(dOA,dAB,Fill(green),quarter=2,size=0.2cm);
  42. perpendicularmark(dAB,dBC,Fill(green),quarter=2,size=0.2cm);
  43. perpendicularmark(dBC,dCO,Fill(green),quarter=2,size=0.2cm);
  44. perpendicularmark(dCO,dOA,Fill(green),quarter=2,size=0.2cm);
  45. draw(dCO);
  46. draw(droitebleue,blue+white);
  47.  
  48. draw(pO--pC,invisible,StickIntervalMarker(2,2,red,angle=-15,size=1mm,space=1mm));
  49.  
  50. // Points de la droite bleue
  51. for(int k=0; k<=a; ++k) dot(k*esp*dir(theta));
  52. // et le codage des espacements égaux entre les points
  53. draw(pO--a*esp*dir(theta),invisible,StickIntervalMarker(a,1,blue,angle=-15,size=1mm,space=1mm));
  54.  
  55. draw(arccircle(pO,pB,aTan(haut/larg)));
  56. draw(pO--pB,orange);
  57. draw(drouge1^^drouge2,red);
  58.  
  59. dot("$O$",pO,N);
  60. dot("$I$",(pO+pC)/2,N);
  61. dot("P",pP,N);
  62. dot("U",pU,SE);
  63. dot("$-1$",pE,SW);
  64. label(format(haut),(pO+pA)/2,W);
  65. label(format(larg),(pA+pB)/2,S);
  66.  
  67. label(format("$x_U=-\frac{%i}",b)+format("{%i}$",a)
  68. +format(" et $x_P=\sqrt{%f}$",larg^2+haut^2),
  69. truepoint(NE),NW);
  70.  
  71. linemargin =-0.5cm;
  72. addMargins(.5cm,.5cm);

Re: Graduations et parallèles

Posté : sam. 1 oct. 2022, 08:49
par GM
J'ai rajouté l'affichage des valeurs des deux abscisses (calculées selon les paramètres) :

Figure asymptote ec01e2bbc93b140439a5b9d218b446ad
*** 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. import markers;
  3. settings.tex="pdflatex";
  4.  
  5. size(8cm,0);
  6.  
  7. //---------------------------------------------------
  8. //--------- Paramètres de la figure
  9. //---------------------------------------------------
  10. real theta = 140; // Angle de la droite bleue
  11. real esp = 0.4; // Espacement des graduations
  12. int a=7, b=5; // Rapport a/b relatif aux graduations, avec a>b
  13. real larg=3, haut=2; // Dimensions du rectangle
  14. //---------------------------------------------------
  15.  
  16. // Définition des points O, A, B, C et E
  17. point pO =(0,0), pA=(0,-haut), pB=(larg,-haut), pC=(larg,0), pE=(-1,0);
  18.  
  19. // Définition du rectangle OABC
  20. path rectOABC = pO--pA--pB--pC--cycle;
  21.  
  22. // Définition des droites relatives au rectangle OABC
  23. line dOA=line(pO,pA), dAB=line(pA,pB), dBC=line(pB,pC), dCO=line(pC,pO);
  24. // La droite bleue passant par le point O est le point de coordonnées polaires (1;theta)
  25. line droitebleue = line(pO,dir(theta));
  26.  
  27. // La droite rouge 1 qui passe par le point E(-1,0) et le point de coordonnées polaires (a*esp;theta)
  28. line drouge1 = line(pE,a*esp*dir(theta));
  29. // La droite rouge 2 qui est parallèle à drouge1 et passe par point de coordonnées polaires (b*esp;theta)
  30. line drouge2 = parallel(b*esp*dir(theta),drouge1);
  31.  
  32. // Le point U à l'intersection des droites "drouge2" et (OC)
  33. point pU=intersectionpoint(drouge2,dCO);
  34.  
  35. // Définition de P à l'intersection du cercle de centre O passant par B
  36. // et de la droite (OC)
  37. circle c = circle (pO, abs(pB-pO));
  38. point pP = intersectionpoints(c,dCO)[1]; // [0] ou [1] selon le point d'intersection voulu
  39.  
  40. draw(rectOABC);
  41. perpendicularmark(dOA,dAB,Fill(green),quarter=2,size=0.2cm);
  42. perpendicularmark(dAB,dBC,Fill(green),quarter=2,size=0.2cm);
  43. perpendicularmark(dBC,dCO,Fill(green),quarter=2,size=0.2cm);
  44. perpendicularmark(dCO,dOA,Fill(green),quarter=2,size=0.2cm);
  45. draw(dCO);
  46. draw(droitebleue,blue+white);
  47.  
  48. draw(pO--pC,invisible,StickIntervalMarker(2,2,red,angle=-15,size=1mm,space=1mm));
  49.  
  50. // Points de la droite bleue
  51. for(int k=0; k<=a; ++k) dot(k*esp*dir(theta));
  52. // et le codage des espacements égaux entre les points
  53. draw(pO--a*esp*dir(theta),invisible,StickIntervalMarker(a,1,blue,angle=-15,size=1mm,space=1mm));
  54.  
  55. draw(arccircle(pO,pB,aTan(haut/larg)));
  56. draw(pO--pB,orange);
  57. draw(drouge1^^drouge2,red);
  58.  
  59. dot("$O$",pO,N);
  60. dot("$I$",(pO+pC)/2,N);
  61. dot("P",pP,N);
  62. dot("U",pU,SE);
  63. dot("$-1$",pE,SW);
  64.  
  65. // Affichage de la hauteur et de largeur du rectangle
  66. label(format(haut),(pO+pA)/2,W);
  67. label(format(larg),(pA+pB)/2,S);
  68.  
  69. // Affichage des valeurs des abscisses de U et P
  70. label(format("$x_U=-\frac{%i}",b)+format("{%i}$",a)
  71. +format(" et $x_P=\sqrt{%f}$",larg^2+haut^2),
  72. truepoint(NE),NW);
  73.  
  74. linemargin =-0.5cm;
  75. addMargins(.5cm,.5cm);