Récupérer les arguments de size
-
- Modérateur honoraire
- Messages : 355
- Inscription : samedi 25 juillet 2009, 12:25
- Localisation : Le Creusot
- Contact :
Récupérer les arguments de size
Bonjour,
Voila mon problème, je voudrais tracer un segment de taille invariable, c'est à dire qui ne dépende pas des arguments de size, à la manière des graduations des axes.
J'ai bien trouvé une variable Ticksize, mais en dehors de certaines fonctions, ça ne va pas...
J'ai aussi essayé des choses comme pic.trucbidule (mais surement pas avec le bon trucbidule) pour essayer de récupérer les arguments de size.
Mais sans succès non plus....
Christophe
Voila mon problème, je voudrais tracer un segment de taille invariable, c'est à dire qui ne dépende pas des arguments de size, à la manière des graduations des axes.
J'ai bien trouvé une variable Ticksize, mais en dehors de certaines fonctions, ça ne va pas...
J'ai aussi essayé des choses comme pic.trucbidule (mais surement pas avec le bon trucbidule) pour essayer de récupérer les arguments de size.
Mais sans succès non plus....
Christophe
Dernière modification par chellier le mardi 16 février 2010, 15:17, modifié 1 fois.
Quelques macros personnelles pour Asymptote sur github
Un démarrage rapide pour Asymptote en français et la doc de Maurice sur la 3D avec Asymptote
Un démarrage rapide pour Asymptote en français et la doc de Maurice sur la 3D avec Asymptote
Re: [Asymptote] Récupérer les arguments de size
Ne te suffit-il pas d'utiliser unitsize au lieu de size ?
Index des fonctions Asymptote- Pour consulter ou me demander des exemples : Galerie et AsyForum - Notepad++, l'éditeur qu'il faut pour Asymptote sous Windows - TexWorks+LaTexMk+Asymptote
Re: [Asymptote] Récupérer les arguments de size
Je pensais à "travailler" avec un unitsize pour toute la figure...GMaths a écrit :Ne te suffit-il pas d'utiliser unitsize au lieu de size ?
... mais sinon, je te propose cela aussi :
Code : Tout sélectionner
size(6cm);
draw(unitsquare);
picture pic; unitsize(pic,1cm);
draw(pic,(0,1)--(5,1),red);
add(pic.fit());
Index des fonctions Asymptote- Pour consulter ou me demander des exemples : Galerie et AsyForum - Notepad++, l'éditeur qu'il faut pour Asymptote sous Windows - TexWorks+LaTexMk+Asymptote
-
- Modérateur honoraire
- Messages : 355
- Inscription : samedi 25 juillet 2009, 12:25
- Localisation : Le Creusot
- Contact :
Re: [Asymptote] Récupérer les arguments de size
Avec unitsize(1cm), j'obtiens par exemple ce type de figure :
je réduis les borne et utilise size(6cm) :
j'applique un coef et j'obtiens ce que je veux :
Si je réduis les bornes avec unitsize, je ne vois rien.
Avec le coef, je m'en sort, c'était juste pour savoir si je pouvais faire autrement...
Christophe
je réduis les borne et utilise size(6cm) :
j'applique un coef et j'obtiens ce que je veux :
Si je réduis les bornes avec unitsize, je ne vois rien.
Avec le coef, je m'en sort, c'était juste pour savoir si je pouvais faire autrement...
Christophe
Quelques macros personnelles pour Asymptote sur github
Un démarrage rapide pour Asymptote en français et la doc de Maurice sur la 3D avec Asymptote
Un démarrage rapide pour Asymptote en français et la doc de Maurice sur la 3D avec Asymptote
-
- Modérateur honoraire
- Messages : 355
- Inscription : samedi 25 juillet 2009, 12:25
- Localisation : Le Creusot
- Contact :
Re: [Asymptote] Récupérer les arguments de size
Oups, pas vu ton message GMaths, je teste dès que je peux
Quelques macros personnelles pour Asymptote sur github
Un démarrage rapide pour Asymptote en français et la doc de Maurice sur la 3D avec Asymptote
Un démarrage rapide pour Asymptote en français et la doc de Maurice sur la 3D avec Asymptote
Re: [Asymptote] Récupérer les arguments de size
Dans ta définition de sol2onaxis, tu as :chellier a écrit :Si je réduis les bornes avec unitsize, je ne vois rien.
Avec le coef, je m'en sors, c'était juste pour savoir si je pouvais faire autrement...
Code : Tout sélectionner
real xMin=min(sol1,sol2)-2.5, real xMax=max(sol1,sol2)+2.5,
Index des fonctions Asymptote- Pour consulter ou me demander des exemples : Galerie et AsyForum - Notepad++, l'éditeur qu'il faut pour Asymptote sous Windows - TexWorks+LaTexMk+Asymptote
Re: [Asymptote] Récupérer les arguments de size
Peut-être une source d'inspiration pour tes problèmes de taille : tu pourras constater que tu peux changer la ligne
par la ligne
et la figure va garder sa lisibilité.
Code : Tout sélectionner
point A=(8,37),B=(10,57.5);
Code : Tout sélectionner
point A=(8,37),B=(8.2,57.5);
Index des fonctions Asymptote- Pour consulter ou me demander des exemples : Galerie et AsyForum - Notepad++, l'éditeur qu'il faut pour Asymptote sous Windows - TexWorks+LaTexMk+Asymptote
-
- Modérateur spécialisé
- Messages : 2293
- Inscription : lundi 12 mars 2007, 11:20
- Localisation : Rouen
Re: [Asymptote] Récupérer les arguments de size
Bonjour
Intéressant tout cela. Dans un fil Asymptote qui n'a rien à voir (pour ne pas proposer une solution asymptote
dans un fil Tikz), j'avais copié arrow pour faire une délimitation d'intervalle.
Je n'ai pas vérifié mais cela doit se comporter comme la graduation des axes.
C'était ici
viewtopic.php?p=97605#p97605
Cela pourra peut-être t'inspirer ?
O.G.
Intéressant tout cela. Dans un fil Asymptote qui n'a rien à voir (pour ne pas proposer une solution asymptote
dans un fil Tikz), j'avais copié arrow pour faire une délimitation d'intervalle.
Je n'ai pas vérifié mais cela doit se comporter comme la graduation des axes.
C'était ici
viewtopic.php?p=97605#p97605
Cela pourra peut-être t'inspirer ?
O.G.
-
- Modérateur honoraire
- Messages : 355
- Inscription : samedi 25 juillet 2009, 12:25
- Localisation : Le Creusot
- Contact :
Re: [Asymptote] Récupérer les arguments de size
@ GMaths : Bon, j'ai essayé tout ça, mais en voulant garder l'option de choisir les abscisses mini et maxi (pour pouvoir rajouter des choses sur l'axe), je n'arrive pas vraiment à ce que je veux.
Je crois que je vais m'en tenir pour l'instant au coefficient, ce qui me paraît le plus souple...
En tous les cas, merci pour l'aide ! :D
Christophe
Je crois que je vais m'en tenir pour l'instant au coefficient, ce qui me paraît le plus souple...
En tous les cas, merci pour l'aide ! :D
Christophe
Quelques macros personnelles pour Asymptote sur github
Un démarrage rapide pour Asymptote en français et la doc de Maurice sur la 3D avec Asymptote
Un démarrage rapide pour Asymptote en français et la doc de Maurice sur la 3D avec Asymptote
-
- Modérateur honoraire
- Messages : 355
- Inscription : samedi 25 juillet 2009, 12:25
- Localisation : Le Creusot
- Contact :
Re: [Asymptote] Récupérer les arguments de size
@ OG : J'essaye de comprendre l'exemple, mais va me falloir un peu de temps...
Christophe
Christophe
Quelques macros personnelles pour Asymptote sur github
Un démarrage rapide pour Asymptote en français et la doc de Maurice sur la 3D avec Asymptote
Un démarrage rapide pour Asymptote en français et la doc de Maurice sur la 3D avec Asymptote
Re: [Asymptote] Récupérer les arguments de size
Tu n'as pas dû tout essayer. Tu peux changer la valeur de sol2 dans l'exemple qui suit... et tu verras que la figure est satisfaisante.chellier a écrit :@ GMaths : Bon, j'ai essayé tout ça, mais en voulant garder l'option de choisir les abscisses mini et maxi (pour pouvoir rajouter des choses sur l'axe), je n'arrive pas vraiment à ce que je veux.
Code : Tout sélectionner
size(5cm,3cm,false);
real sol1=0, sol2=2.3;
real dx=1.5*(sol2-sol1);
pair ptX1=(sol1-dx,0),
ptX2=(sol2+dx,0);
draw(ptX1--ptX2,.7bp+black);
dot("sol1",(sol1,0),S,2bp+red);
dot("sol2",(sol2,0),S,2bp+red);
__________________________
Dans ton code, mets par défaut, si sol1<sol2, quelque chose du genre :
xmin=sol1-1.5*(sol2-sol1)
xmax=sol2+1.5*(sol2-sol1)
... et cela devrait aller.
Index des fonctions Asymptote- Pour consulter ou me demander des exemples : Galerie et AsyForum - Notepad++, l'éditeur qu'il faut pour Asymptote sous Windows - TexWorks+LaTexMk+Asymptote
-
- Modérateur honoraire
- Messages : 355
- Inscription : samedi 25 juillet 2009, 12:25
- Localisation : Le Creusot
- Contact :
Re: [Asymptote] Récupérer les arguments de size
Oui, tant qu'on reste sur l'axe des abscisses... Mon problème est la taille du crochet (en particulier suivant les ordonnées). Je voudrais que cette taille, ne dépende pas d'unitsize ou de size. Et surtout, je veux pouvoir rentrer les abscisses mini et maxi en argument dans la fonction, pour pouvoir, par exemple, avoir un axe plus grand sur lequel placer d'autres choses.
Sinon, j'obtiens ça avec xMin=sol1-1.5*(sol2-sol1) et xMax=sol2+1.5*(sol2-sol1)
Je ne suis peut-être pas très clair sur ce que je veux, je suis désolé, merci en tous cas de te pencher sur mon problème :)
La solution d'OG à l'air de faire ce que je veux, il me reste à comprendre le code...
Sinon, j'obtiens ça avec xMin=sol1-1.5*(sol2-sol1) et xMax=sol2+1.5*(sol2-sol1)
Je ne suis peut-être pas très clair sur ce que je veux, je suis désolé, merci en tous cas de te pencher sur mon problème :)
La solution d'OG à l'air de faire ce que je veux, il me reste à comprendre le code...
Quelques macros personnelles pour Asymptote sur github
Un démarrage rapide pour Asymptote en français et la doc de Maurice sur la 3D avec Asymptote
Un démarrage rapide pour Asymptote en français et la doc de Maurice sur la 3D avec Asymptote
Re: [Asymptote] Récupérer les arguments de size
Il faut évidemment revoir ta façon de définir la taille des crochets.chellier a écrit :Mon problème est la taille du crochet (en particulier suivant les ordonnées).
Si, par exemple, tu définis :
Code : Tout sélectionner
real d=abs(sol2-sol1);
Index des fonctions Asymptote- Pour consulter ou me demander des exemples : Galerie et AsyForum - Notepad++, l'éditeur qu'il faut pour Asymptote sous Windows - TexWorks+LaTexMk+Asymptote
Re: [Asymptote] Récupérer les arguments de size
Exemple : avec le code suivant :
tu vas obtenir ceci :
et tu peux changer les valeurs de sol1 et sol2, cela va toujours garder les proportions choisies.
PS : j'ai gardé tes notations sol1, sol2... mais si je devais l'écrire moi-même, je choisirais plutôt : val1 et val2 (val pour valeur qui me semble un mot plus adapté).
Code : Tout sélectionner
size(7cm,0);
real sol1=0,
sol2=3,
xmi=min(sol1,sol2),
xma=max(sol1,sol2),
d=abs(sol2-sol1); // distance entre les deux solutions
real m=1.5d, // distance avant la première solution et après la seconde
hcro=.4*d, // hauteur crochet / 2
lcro=.1*d; // largeur crochet
draw((xmi-m,0)--(xma+m,0),red);
draw((xmi-lcro,hcro)--(xmi,hcro)--(xmi,-hcro)--(xmi-lcro,-hcro),blue);
draw((xma+lcro,hcro)--(xma,hcro)--(xma,-hcro)--(xma+lcro,-hcro),green);
label(format("%f",xmi),(xmi,hcro),N);
label(format("%f",xma),(xma,hcro),N);
shipout(bbox(1mm,invisible));
et tu peux changer les valeurs de sol1 et sol2, cela va toujours garder les proportions choisies.
PS : j'ai gardé tes notations sol1, sol2... mais si je devais l'écrire moi-même, je choisirais plutôt : val1 et val2 (val pour valeur qui me semble un mot plus adapté).
Index des fonctions Asymptote- Pour consulter ou me demander des exemples : Galerie et AsyForum - Notepad++, l'éditeur qu'il faut pour Asymptote sous Windows - TexWorks+LaTexMk+Asymptote
-
- Modérateur honoraire
- Messages : 355
- Inscription : samedi 25 juillet 2009, 12:25
- Localisation : Le Creusot
- Contact :
Re: [Asymptote] Récupérer les arguments de size
Merci, ces exemples sont très intéressants, mais je suis un pénible :
La taille du crochet dépend encore de deux paramètres : sol1 et sol 2. Si je change size(7cm,0) en unitsize(1cm), la taille du crochet change. Or j'aimerais qu'elle ne dépende d'aucun paramètre (notamment pour ma fonction solonaxis() avec un seul crochet, pour ceux qui ne suivent pas c'est là). C'est bien ce qui se passe pour les graduations ou pour les flèches...
Je pensais qu'il y avait une solution "simple", ce n'est apparemment pas le cas
PS: Dans l'esprit de ce que j'ai fait, l'intervalle [a;b] est l'ensemble des réels x solutions des deux inégalités : x≥a et x≤b.
La taille du crochet dépend encore de deux paramètres : sol1 et sol 2. Si je change size(7cm,0) en unitsize(1cm), la taille du crochet change. Or j'aimerais qu'elle ne dépende d'aucun paramètre (notamment pour ma fonction solonaxis() avec un seul crochet, pour ceux qui ne suivent pas c'est là). C'est bien ce qui se passe pour les graduations ou pour les flèches...
Je pensais qu'il y avait une solution "simple", ce n'est apparemment pas le cas
PS: Dans l'esprit de ce que j'ai fait, l'intervalle [a;b] est l'ensemble des réels x solutions des deux inégalités : x≥a et x≤b.
Quelques macros personnelles pour Asymptote sur github
Un démarrage rapide pour Asymptote en français et la doc de Maurice sur la 3D avec Asymptote
Un démarrage rapide pour Asymptote en français et la doc de Maurice sur la 3D avec Asymptote
Re: [Asymptote] Récupérer les arguments de size
J'ai mis un exemple en ligne de ce que propose O.G. : lien mort
Un exemple d'application ici : lien mort
Comme il le disait dans l'autre sujet, il s'agirait d'ajouter la possibilité de tourner les crochets et donc de revoir probablement les appellations.
PS : Olivier, je modifie le fichier OG.asy donné en lien... à ta demande, comme tu voudras.
Un exemple d'application ici : lien mort
Comme il le disait dans l'autre sujet, il s'agirait d'ajouter la possibilité de tourner les crochets et donc de revoir probablement les appellations.
PS : Olivier, je modifie le fichier OG.asy donné en lien... à ta demande, comme tu voudras.
Dernière modification par GMaths le jeudi 26 août 2010, 09:24, modifié 1 fois.
Index des fonctions Asymptote- Pour consulter ou me demander des exemples : Galerie et AsyForum - Notepad++, l'éditeur qu'il faut pour Asymptote sous Windows - TexWorks+LaTexMk+Asymptote
-
- Modérateur spécialisé
- Messages : 2293
- Inscription : lundi 12 mars 2007, 11:20
- Localisation : Rouen
Re: [Asymptote] Récupérer les arguments de size
J'étais en train de regarder les codes et j'allais écrire
@Gaëtan : qu'attends-tu pour le deferred drawing ?
Pour le code proposé, pas de pb tu fais ce que tu veux. De toute façon
je m'étais borné à copier les définitions d'Arrow.
O.G.
@Gaëtan : qu'attends-tu pour le deferred drawing ?
Pour le code proposé, pas de pb tu fais ce que tu veux. De toute façon
je m'étais borné à copier les définitions d'Arrow.
O.G.
Re: [Asymptote] Récupérer les arguments de size
D'avoir du temps (une journée à rien faire - car pour l'instant, je me contente de choses qui me prennent 5 minutes pendant mes pauses de bricolage ou de copies) et d'en comprendre toutes les subtilités.OG a écrit :@Gaëtan : qu'attends-tu pour le deferred drawing ?
Et puis, je ne cesse d'en faire... dès lors où je mets une figure avec size(...), il y en a... si j'ai bien compris !
Index des fonctions Asymptote- Pour consulter ou me demander des exemples : Galerie et AsyForum - Notepad++, l'éditeur qu'il faut pour Asymptote sous Windows - TexWorks+LaTexMk+Asymptote
-
- Modérateur honoraire
- Messages : 355
- Inscription : samedi 25 juillet 2009, 12:25
- Localisation : Le Creusot
- Contact :
Re: [Asymptote] Récupérer les arguments de size
Très bien très bien tout ça ! :)
Il y a juste un inconvénient, c'est que le crochet se trouve sur un path.
J'ai essayé de bricoler ça :
Par contre, j'ai plus les graduations
Sinon, je suis tombé là-dessus. Mais j'ai mal à la tête... Je crois que je vais profiter un peu de mes vacances maintenant :D
Christophe
Il y a juste un inconvénient, c'est que le crochet se trouve sur un path.
J'ai essayé de bricoler ça :
Code : Tout sélectionner
void bracket(picture pic, pair a, pair d, real s,pen p=currentpen)
{
picture opic;
pair ortd=s*(-d.y,d.x);
Draw(opic,(ortd-.5d)--(-0.5d)--0.5d--(.5d+ortd),p+solid);
add(pic,opic,a);
}
arrowbar lBra(real size=0, real ratiob=.3)
{
return new bool(picture pic, path g, pen p, margin margin) {
real size=size == 0 ? barsize(p) : size;
bracket(pic,point(g,0),size*dir(g,0)*I,ratiob,p);
return true;
};
}
arrowbar rBra(real size=0, real ratiob=.3)
{
return new bool(picture pic, path g, pen p, margin margin) {
real size=size == 0 ? barsize(p) : size;
bracket(pic,point(g,0),size*dir(g,0)*I,-ratiob,p);
return true;
};
}
arrowbar lBra=lBra();
arrowbar rBra=rBra();
import graph;
size(5cm,0);
xlimits(min=-3,max=4);
xaxis(Label("$x$",align=N),Ticks(),Arrow);
draw((0,0)--(.00001,0),bp+blue,lBra);
draw((1,0)--(1.00001,0),bp+darkgreen,rBra);
shipout(bbox(5mm,invisible));
Sinon, je suis tombé là-dessus. Mais j'ai mal à la tête... Je crois que je vais profiter un peu de mes vacances maintenant :D
Christophe
Quelques macros personnelles pour Asymptote sur github
Un démarrage rapide pour Asymptote en français et la doc de Maurice sur la 3D avec Asymptote
Un démarrage rapide pour Asymptote en français et la doc de Maurice sur la 3D avec Asymptote
Re: [Asymptote] Récupérer les arguments de size
chellier a écrit :Il y a juste un inconvénient, c'est que le crochet se trouve sur un path.
C'est justement l'avantage !! tracer des path/segments correspondant aux intervalles de solutions.
Et, puis en revoyant ce que proposait Olivier initialement, on peut gérer la couleur des crochets et tu peux mettre le chemin en couleur "invisible" si tu préfères.
Index des fonctions Asymptote- Pour consulter ou me demander des exemples : Galerie et AsyForum - Notepad++, l'éditeur qu'il faut pour Asymptote sous Windows - TexWorks+LaTexMk+Asymptote
-
- Sujets similaires
- Réponses
- Vues
- Dernier message
-
- 10 Réponses
- 1343 Vues
-
Dernier message par Arathorn