Tracer une ellipse

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

Tracer une ellipse

Message non lu par Fabrice » jeu. 25 avr. 2013, 19:00

Bonsoir,
Dans le code ci-après, j'ai tracé les deux ellipses en "testant", ce qui n'est pas très rigoureux !
J'ai pensé récupérer des points se trouvant sur les arcs des cercles c1 et c2 qui font "partie" des deux ellipses pour utiliser la routine conic(point M1, point M2, point M3, point M4, point M5) mais je n'y parviens pas.
Merci.

Figure asymptote a1772b104cb3646a23462362d8e53898
*** 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. unitsize(1cm);
  4. pair z1=(2,2), z2=(7,2);
  5. real r=3;
  6. path c1=circle(z1,r), c2=circle(z2,r);
  7. path e1 =ellipse((4,2),1,1.9), e2 =ellipse((5,2),1,1.9);
  8. filldraw(c1,green,black);
  9. filldraw(c2,green,black);
  10. filldraw(buildcycle(e1,e2),pink,black);
  11. filldraw(buildcycle(c2,c1),yellow,black);
  12. label("L",(2,4.5));
  13. label("V",(7,4.5));
  14. label("$2$",(4.5,2));
Debian Strech + Asymptote 2.42-12 + Emacs24 + TeXLive 2017

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

Re: Tracer une ellipse

Message non lu par maurice » ven. 26 avr. 2013, 02:12

Bonjour,

désolé de ne pas répondre mais je ne comprends pas vraiment ce qur tu veux faire et quelle est exactement la question ...

Si tu pouvais préciser tout cela, on pourrait t'aider plus efficacement.

Bruno
Doc 3D
Si ça ne marche pas, essayez la version pdf

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

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

Re: Tracer une ellipse

Message non lu par GM » ven. 26 avr. 2013, 06:12

Bonjour,
je confirme que la demande n'est pas comprise.

Peut-être que la première phrase veut dire que tu as cherché à tracer deux ellipses dont une partie de chacune d'elle donnerait à penser qu'elle peut être un arc de cercle ?

Quant aux 5 points ???

-----------

PS: j'ai des difficultés à répondre aux messages en ce moment... car je ne suis pas chez moi.
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: Tracer une ellipse

Message non lu par Fabrice » ven. 26 avr. 2013, 11:44

Bonjour,
Je vais essayer de clarifier !
En premier lieu, la figure que je veux faire est celle d'un manuel scolaire illustrant un exercice de "dénombrement" (niveau seconde). Tracer les deux ensembles L et V ainsi que leur intersection n'a pas été la partie la plus difficile.
D'après l'image du livre, il y a deux ellipses coloriées en rose : comment tracer ces ellipses ?
J'ai donc utilisé la routine

Code : Tout sélectionner

ellipse ellipse(point C, real a, real b, real angle=0)
en testant les valeurs a et b pour se rapprocher au mieux du graphique, méthode que je trouve peu élégante et manquant de rigueur !
En parcourant la documentation du module Géométrie de Philippe, j'ai découvert cette routine que je ne connaissais pas :

Code : Tout sélectionner

conic conic(point M1, point M2, point M3, point M4, point M5)

Si on observe le graphique, on peut "récupérer" ces cinq points sur l'arc de cercle rouge :

Figure asymptote 58c8628020268364f0de205f7ee7a357
*** 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. unitsize(0.8cm);
  4. pair z1=(2,2), z2=(7,2);
  5. real r=3;
  6. path c1=circle(z1,r), c2=circle(z2,r);
  7. pair T[]=intersectionpoints(c1,c2);
  8. path e1 =ellipse((4,2),1,1.9), e2 =ellipse((5,2),1,1.9);
  9. filldraw(c1,green,black);
  10. filldraw(c2,green,black);
  11. filldraw(buildcycle(e1,e2),pink,black);
  12. filldraw(buildcycle(c2,c1),yellow,black);
  13. label("L",(2,4.5));
  14. label("V",(7,4.5));
  15. label("$2$",(4.5,2));
  16. arc C= arccircle(T[0],point(c1,0),T[1]);
  17. draw(C,red+2bp);


Merci.
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: Tracer une ellipse

Message non lu par GM » ven. 26 avr. 2013, 14:19

On comprend un peu mieux mais... en ce qui me concerne... pas encore tout ! :?

Tu veux des ellipses de chez Ellipse, avec toutes les propriétés des ellipses ?

Car si au final, ce que tu veux, c'est quelque chose qui ressemble à peu près à deux ellipses
et si ta préoccupation est uniquement de pouvoir récupérer l'arc rouge (autrement dit une partie d'un path), alors je rappelle qu'il existe subpath :

Figure asymptote 78a839dd91a27cc9512adac852504c7b
*** 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. size(5cm);
  2. real l=3, h=5;
  3. path ens1=(0,-h)..(l,0)..(0,h)..(-l,0)..cycle,
  4. ens2=shift(3*l/2)*ens1;
  5. real[][] t = intersections(ens1,ens2);
  6. draw(ens1^^ens2);
  7. draw(subpath(ens1,t[0][0],t[1][0]),1bp+red);
  8. draw(subpath(ens2,t[0][1],t[1][1]),1bp+green);


Désolé si je réponds à côté... mais j'ai du mal à proposer quelque chose quand j'ai un doute sur la finalité.
Si pour ton problème, cette finalité est de récupérer un arc d'une partie d'intersection entre deux choses qui ressemblent à peu près à des ellipses, alors je crois que ce que j'ai proposé est plus simple que d'aller bricoler avec conic(point M1, point M2, point M3, point M4, point M5) pour un simple arc d'un path connu... et d'ailleurs, je ne vois toujours pas quels seraient les 5 points auxquels tu penses.
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: Tracer une ellipse

Message non lu par Fabrice » ven. 26 avr. 2013, 14:51

Re,
GM a écrit :tu veux des ellipses de chez Ellipse, avec toutes les propriétés des ellipses ?

Au départ, c'est effectivement ce que je veux faire.

GM a écrit :Si pour ton problème, cette finalité est de récupérer un arc d'une partie d'intersection entre deux choses qui ressemblent à peu près à des ellipses

Là, on ne s'est pas compris.
Les deux "choses" dont tu parles sont en fait les deux disques verts, et je n'ai pas besoin de récupérer un arc pour délimiter leur intersection.
Pour résumer, je veux construire deux vraies ellipses (coloriées en rose) à partir des données disponibles que sont les paramètres des deux cercles tracés.
On va y arriver ! :lol:
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: Tracer une ellipse

Message non lu par GM » ven. 26 avr. 2013, 15:10

Euhhh... tu veux qu'un arc de cercle... soit un arc d'ellipse non cercle ??!?
Je ne suis pas un spécialiste des coniques mais je crois pouvoir te dire que si tu prends 5 points de ton arc de cercle... alors la fonction conic va te renvoyer la seule conique possible... qui est le cercle !!
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: Tracer une ellipse

Message non lu par Fabrice » ven. 26 avr. 2013, 15:44

GM a écrit :Euhhh... tu veux qu'un arc de cercle... soit un arc d'ellipse non cercle ??!?

Non.
GM a écrit :si tu prends 5 points de ton arc de cercle... alors la fonction conic va te renvoyer la seule conique possible... qui est le cercle !!

C'est ce que je présentais.
Ne sachant comment faire, j'ai utilisé cette routine :

Code : Tout sélectionner

path e1 =ellipse((4,2),1,1.9), e2 =ellipse((5,2),1,1.9);

Ce qui me chagrine, c'est d'avoir essayé plusieurs fois pour trouver la valeur 1.9 qui corresponde à peu près à ce que l'image du livre montre.
Je voulais savoir s'il y avait une méthode plus rigoureuse pour tracer ces ellipses.
Mais bon, le résultat est probant, et on va en rester là.
Merci.
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: Tracer une ellipse

Message non lu par GM » ven. 26 avr. 2013, 16:24

Fabrice a écrit :Ce qui me chagrine, c'est d'avoir essayé plusieurs fois pour trouver la valeur 1.9 qui corresponde à peu près à ce que l'image du livre montre.
Je voulais savoir s'il y avait une méthode plus rigoureuse pour tracer ces ellipses.


1. Si ce sont vraiment des ellipses sur ton livre (on peut en douter : pourquoi des ellipses plutôt que de suffisantes "patatoïdes" pour représenter des ensembles ???)...

et

2. si tu veux reproduire la figure à l'identique,


... alors la méthode va consister simplement à mesurer "petit axe" et "grand axe" sur ton livre pour tracer une première ellipse avec la commande

Code : Tout sélectionner

ellipse ellipse(point C, real a, real b, real angle=0)

qui
Retourne l’ellipse de centre C dont le demi grand axe a pour longueur a dans la direction donnée par dir(angle) et dont le demi petit axe a pour longueur b.


et à simplement mesurer le décalage d (suivant le petit axe) entre les deux ellipses, pour déduire la seconde par translation de vecteur (d;0).

Je ne vois pas ce que tu pourrais faire de mieux... si tu n'as que la figure !

Et je ne vois pas ce qui t'a fait penser que des cercles pourraient t'aider dans la reproduction de ces ellipses.
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: Tracer une ellipse

Message non lu par Fabrice » ven. 26 avr. 2013, 17:19

GM a écrit :Je ne vois pas ce que tu pourrais faire de mieux... si tu n'as que la figure !


Voilà ce que je voulais entendre ! :D
Debian Strech + Asymptote 2.42-12 + Emacs24 + TeXLive 2017

Répondre