[Un peu résolu] Entourer un texte avec une double ellipse

Tout ce qui concerne le langage Asymptote. Ce langage est supporté sur le forum via les balises asy.

Modérateur : gdm_asy

Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
cerise
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 447
Inscription : mercredi 08 juin 2005, 18:03

[Un peu résolu] Entourer un texte avec une double ellipse

Message par cerise »

Bonjour,

Je découvre la commande object qui permet de mettre un texte dans une boîte, par exemple :

Code : Tout sélectionner

unitsize(1cm);

object B = object("B",ellipse);
add(B);
qui donne un B entouré d'une ellipse.
J'ai vu que les formes de boîte prédéfinis étaient box, roundbox et ellipse. Y a-t-il un moyen d'avoir une double ellipse autour de mon texte ?

Cerise
Dernière modification par cerise le jeudi 29 septembre 2011, 17:47, modifié 1 fois.
Il fallait être Newton pour apercevoir que la Lune tombe quand tout le monde voit bien qu'elle ne tombe pas.
Paul Valéry
cerise
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 447
Inscription : mercredi 08 juin 2005, 18:03

Re: Entourer un texte avec une double ellipse

Message par cerise »

Bon désolée du double post, mais je complète un peu ce que je disais.
Finalement, j'utilise plutôt la commande draw, comme ci-dessous :

Code : Tout sélectionner

unitsize(1cm);

pair zB = (0,0);
object B = draw("B",ellipse,zB);
Je n'ai toujours pas trouvé comment faire une double ellipse. Peut-on définir d'autres types d'"enveloppe" que les trois prédéfinis ? Y a-t-il une documentation plus détaillée de ces fonctions que la doc officielle ?

EDIT : Pour relier plusieurs objets définis comme ça, j'ai trouvé dans un exemple sur le site de Gaëtan, ainsi que dans un exemple sur le site officiel, une syntaxe du genre :

Code : Tout sélectionner

add(new void(picture pic, transform t) {
    draw(pic,point(B,SE,t)--point(A,NW,t));
});  
J'ai aussi essayé d'écrire simplement une syntaxe du genre

Code : Tout sélectionner

draw(point(B,SE)--point(A,NW));
et j'ai constaté que dans le deuxième cas, cela traçait tout une droite, alors que dans le premier cas, cela traçait un segment qui s'arrête bien où on veut. Et j'avoue ne pas comprendre pourquoi ça marche. Si quelqu'un pouvait m'expliquer cette syntaxe...

(Je crois que je perds beaucoup plus de temps à essayer de faire quelque chose d'élégant et ad hoc qu'il ne m'en faudrait pour simplement faire ce que je veux "à la main", mais bon...)

EDIT 2 : bon, j'ai finalement abandonné l'idée d'utiliser ces fonctions et j'ai plutôt programmé mes propres fonctions pour faire exactement ce que je veux. Cela dit, je reste intéressée par des explications supplémentaires sur la manière dont fonctionnent les "objects" et les enveloppes...
Il fallait être Newton pour apercevoir que la Lune tombe quand tout le monde voit bien qu'elle ne tombe pas.
Paul Valéry
chellier
Modérateur
Modérateur
Messages : 355
Inscription : samedi 25 juillet 2009, 12:25
Localisation : Le Creusot

Re: Entourer un texte avec une double ellipse

Message par chellier »

Bonsoir,
On peut se référer au fichier plain_boxes.asy.
Par exemple, en modifiant ellipse de plain_boxes, on peut obtenir ceci (j'ai enlevé object pour que ça compile sur le forum) :
{}
Pour les autres questions, je n'ai pas regardé, et je n'ai pas trop le temps en ce moment :( Quelqu'un d'autre peut-être ?
Christophe
cerise
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 447
Inscription : mercredi 08 juin 2005, 18:03

Re: Entourer un texte avec une double ellipse

Message par cerise »

Merci pour ta réponse !
Je vais regarder ton code en détail et le comparer à celui de ellipse dans le fichier plain_boxes.asy pour comprendre ce qu'il fait.

EDIT : si je comprends bien, tu traces d'abord une ellipse colorée épaisse (enfin, de l'épaisseur spécifiée en argument), par dessus laquelle tu traces une ellipse blanche plus fine (enfin de l'épaisseur par défaut) ?
Il fallait être Newton pour apercevoir que la Lune tombe quand tout le monde voit bien qu'elle ne tombe pas.
Paul Valéry
chellier
Modérateur
Modérateur
Messages : 355
Inscription : samedi 25 juillet 2009, 12:25
Localisation : Le Creusot

Re: Entourer un texte avec une double ellipse

Message par chellier »

cerise a écrit :si je comprends bien, tu traces d'abord une ellipse colorée épaisse (enfin, de l'épaisseur spécifiée en argument), par dessus laquelle tu traces une ellipse blanche plus fine (enfin de l'épaisseur par défaut) ?
C'est ça. J'ai fais ça vite juste pour montrer que l'on pouvait modifier ellipse. Après il faudrait tester davantage, voire essayer de passer la largeur de l'ellipse blanche en argument (je ne sais pas si c'est faisable facilement). Mais il y a peut-être mieux...

Christophe
GMaths
Utilisateur chevronné
Utilisateur chevronné
Messages : 2038
Inscription : lundi 01 octobre 2007, 10:20

Re: Entourer un texte avec une double ellipse

Message par GMaths »

cerise a écrit :Pour relier plusieurs objets définis comme ça, j'ai trouvé dans un exemple sur le site de Gaëtan, ainsi que dans un exemple sur le site officiel, une syntaxe du genre :

Code : Tout sélectionner

add(new void(picture pic, transform t) {
    draw(pic,point(B,SE,t)--point(A,NW,t));
});  
Il y a beaucoup d'objets à relier ? Tous de même forme ? Dans quel but ?
Je demande cela... car, par exemple, pour quelque chose qui ressemble à un graphe (qui pourrait ressembler à celui-ci, mais d'autres mises en forme sont possibles), il y aurait éventuellement une autre façon.
2011-09-25_182405.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
cerise
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 447
Inscription : mercredi 08 juin 2005, 18:03

Re: Entourer un texte avec une double ellipse

Message par cerise »

Bonjour !

Comme je le disais dans un précédent message, je me suis programmé des petites macros pour faire exactement ce que je voulais. Donc, dans l'immédiat, j'ai résolu mon problème, et les feuilles de TD sont imprimées. (Là c'était pour dessiner des arbres binaires pas trop gros, en l'occurrence.)

Mais à l'avenir, je pourrais avoir besoin de dessiner des graphes ou d'autres arbres, et ta solution m'intéresse !
Il fallait être Newton pour apercevoir que la Lune tombe quand tout le monde voit bien qu'elle ne tombe pas.
Paul Valéry
cerise
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 447
Inscription : mercredi 08 juin 2005, 18:03

Re: Entourer un texte avec une double ellipse

Message par cerise »

Désolée du double-post, mais je voulais te signaler, Gaëtan, que j'ai justement eu l'occasion d'utiliser ton package pour dessiner des graphes pour faire mon TD suivant, et je voulais te remercier pour ton beau boulot ! Ça m'a été très utile.
Il fallait être Newton pour apercevoir que la Lune tombe quand tout le monde voit bien qu'elle ne tombe pas.
Paul Valéry
GMaths
Utilisateur chevronné
Utilisateur chevronné
Messages : 2038
Inscription : lundi 01 octobre 2007, 10:20

Re: Entourer un texte avec une double ellipse

Message par GMaths »

cerise a écrit :je voulais te signaler, Gaëtan, que j'ai justement eu l'occasion d'utiliser ton package pour dessiner des graphes pour faire mon TD suivant, et je voulais te remercier pour ton beau boulot ! Ça m'a été très utile.
Il n'y a pas de quoi mais je me pose une question : tu es sûre de parler du mien de package ? :mrgreen:

Je dis cela car j'ai dû mettre à un moment donné un lien vers un début de doc sur le package, avec très peu d'exemples... donc il faut être doué(e) pour l'avoir trouvé et avoir compris son fonctionnement. :mrgreen:
cerise
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 447
Inscription : mercredi 08 juin 2005, 18:03

Re: [Un peu résolu] Entourer un texte avec une double ellips

Message par cerise »

On parle bien de ça ?
viewtopic.php?t=12231

Si je comprends bien ton message, c'est bien toi qui a écrit ce package ? C'est bien celui-ci que j'ai utilisé, pour produire le dessin ci-dessous, que l'un des premiers exemples de la doc permet de réaliser sans trop de problème.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Il fallait être Newton pour apercevoir que la Lune tombe quand tout le monde voit bien qu'elle ne tombe pas.
Paul Valéry
GMaths
Utilisateur chevronné
Utilisateur chevronné
Messages : 2038
Inscription : lundi 01 octobre 2007, 10:20

Re: [Un peu résolu] Entourer un texte avec une double ellips

Message par GMaths »

cerise a écrit :On parle bien de ça ?
viewtopic.php?t=12231

Si je comprends bien ton message, c'est bien toi qui a écrit ce package ?
oui et oui. :-)

J'avais oublié que j'avais osé créer un sujet à son propos... alors que sa documentation est si pauvre.
cerise a écrit :C'est bien celui-ci que j'ai utilisé, pour produire le dessin ci-dessous, que l'un des premiers exemples de la doc permet de réaliser sans trop de problème.
Alors tant mieux.
cerise
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 447
Inscription : mercredi 08 juin 2005, 18:03

Re: [Un peu résolu] Entourer un texte avec une double ellips

Message par cerise »

GMaths a écrit :J'avais oublié que j'avais osé créer un sujet à son propos... alors que sa documentation est si pauvre.
Eh bien tu as bien fait d'oser ;)
Il fallait être Newton pour apercevoir que la Lune tombe quand tout le monde voit bien qu'elle ne tombe pas.
Paul Valéry