Page 1 sur 1

À propos de la routine circle ((explicit point C, real r))

Posté : mer. 10 oct. 2012, 18:17
par Fabrice
Bonsoir,
Dans le code ci-après, j'ai voulu utiliser, sans succès, la routine circle (explicit point C, real r) pour tracer le cercle de centre O et de rayon r= 5 cm :

Figure asymptote 56a54aefeb894d9563463fe6c6355768
*** 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. usepackage("kpfonts");
  3. pen p =fontsize(8pt);
  4. unitsize(0.5cm);
  5. point z1=(0,0);
  6. path g1=scale(5)*unitcircle;
  7. pair z2=point(g1,0.5);
  8. path g2=z1--z2;
  9. point z3=point(g2,0.6);
  10. circle c=circle(z3,-z3);
  11. draw(g1);
  12. draw(g2);
  13. draw(c);
  14. label("O",z1,S,p);
  15. label("M",z3,2*N,p);
  16. dot(z1);
  17. dot(z3);

De plus, peut-on transformer le point de la routine dot() en une croix ?
Merci.

Re: À propos de la routine circle ((explicit point C, real r))

Posté : mer. 10 oct. 2012, 21:28
par GM
Bonsoir,
Fabrice a écrit :Dans le code ci-après, j'ai voulu utiliser, sans succès, la routine circle (explicit point C, real r) pour tracer le cercle de centre O et de rayon r= 5 cm

Tu veux dire :

Code : Tout sélectionner

path g1=circle(z1,5);

à la place du

Code : Tout sélectionner

path g1=scale(5)*unitcircle;

Pourquoi dis-tu que cela ne fonctionne pas : on obtient le même cercle dans les deux cas.

Figure asymptote 383eab0ab8c0aeda76dd5387537b6246
*** 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.5cm);
  3. point z1=(0,0);
  4. path g1=circle(z1,5);
  5. draw(g1);

Figure asymptote d1264610bc55081dec79a0095dc5e887
*** 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.5cm);
  3. path g1=scale(5)*unitcircle;
  4. draw(g1);


Si tu ne retrouves pas 5cm sur la feuille, je te rappelle que tu as mis :

Code : Tout sélectionner

unitsize(0.5cm);

Re: À propos de la routine circle ((explicit point C, real r))

Posté : mer. 10 oct. 2012, 21:36
par GM
Je nuance mon message précédent : il y a différence subtile entre les deux définitions qui ne se voit qu'en affichant les noeuds :

Figure asymptote 7943cb4c1695660231e2183a206535d1
*** 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.5cm);
  3. point z1=(0,0);
  4. path g1=circle(z1,5);
  5. draw(g1);
  6. dot(g1,2bp+red);


Figure asymptote c969819c98e7c8db9ef604fc44103ffe
*** 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.5cm);
  3. path g1=scale(5)*unitcircle;
  4. draw(g1);
  5. dot(g1,2bp+red);


Et donc évidemment que le

Code : Tout sélectionner

pair z2=point(g1,0.5);
n'a pas le même résultat dans les deux cas.
Et c'est pour cela que dans un message récent j'ai conseillé relpoint. ;-)

Re: À propos de la routine circle ((explicit point C, real r))

Posté : mer. 10 oct. 2012, 22:04
par Fabrice
Bonsoir Gaetan,
En fait, je viens de me corriger. En effet, j'ai une habitude dont j'ai du mal à me défaire : pair z au lieu de point z :

Code : Tout sélectionner

pair z1=(0,0);
circle g1=circle(z1,5);



Code : Tout sélectionner

-*- mode: compilation; default-directory: "/home/fab/" -*-
Compilation started at Wed Oct 10 22:56:32

asy -V -wait "fig_ie2"
fig_ie2.asy: 6.17: cannot cast 'path' to 'circle'

Compilation exited abnormally with code 1 at Wed Oct 10 22:56:32

Re: À propos de la routine circle ((explicit point C, real r))

Posté : mer. 10 oct. 2012, 22:12
par GM
Fabrice a écrit :j'ai une habitude dont j'ai du mal à me défaire : pair z au lieu de point z :

Code : Tout sélectionner

pair z1=(0,0);
circle g1=circle(z1,5);


Je ne comprends pas l'exemple que tu donnes maintenant par rapport à ce que tu dis.
Tu veux dire que tu veux utiliser pair et non point ? :roll:

Car si tu veux bien utiliser point, je ne comprends pourquoi tu me donnes le message d'erreur qui suit puisque cela fonctionne :

Figure asymptote e710a99a7a038ed2c9c10a3d6272f429
*** 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.5cm);
  3. point z1=(0,0);
  4. circle g1=circle(z1,5);
  5. draw(g1);

Re: À propos de la routine circle ((explicit point C, real r))

Posté : jeu. 11 oct. 2012, 16:01
par Fabrice
Bonjour,
GM a écrit :Tu veux dire que tu veux utiliser pair et non point ? :roll:

Ce n'est pas que je veux, mais j'ai utilisé pair au lieu de point, ce qui a engendré le message d'erreur.
Le bout de code :

Code : Tout sélectionner

pair z1=(0,0);
circle g1=circle(z1,5);
voulait te montrer ce que j'avais écrit, et qui donc ne fonctionnait pas.
Suis-je plus clair ? :oops:

Re: À propos de la routine circle ((explicit point C, real r))

Posté : jeu. 11 oct. 2012, 16:15
par GM
Fabrice a écrit :Suis-je plus clair ? :oops:

oui, oui :mrgreen: