Bonsoir
Cela n'a rien à voir avec le sujet, mais plutôt celui de Tikz et des intervalles.
Histoire d'avoir un exemple supplémentaire pour qui veut et pour une fois
que je fais une figure avec Asymptote. Ici la fonction est décroissante, ce qui
oblige à utiliser une portion du graphe de la fonction.
Grosso modo j'ai ajouté le crochet extérieur au tracé de tout de chemin
(début, fin, les deux) avec deux options (taille, ratio), où taille est la hauteur
du crochet et ratio le ratio du trait qui fait que c'est un crochet par rapport à la hauteur
(c'est clair uniquement pour moi et encore). C'est copié sur Bar.
Code pas très propre non plus.
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);
}
/*
picture bracket(pair a, pair d, real s, pen p=currentpen)
{
picture pic;
bracket(pic,a,d,s,p);
return pic;
}
*/
arrowbar BeginBra(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 Bra(real size=0, real ratiob=.3)
{
return new bool(picture pic, path g, pen p, margin margin) {
int L=length(g);
real size=size == 0 ? barsize(p) : size;
bracket(pic,point(g,L),size*dir(g,L)*I,-ratiob,p);
return true;
};
}
arrowbar EndBra(real size=0, real ratiob=.3)= Bra;
arrowbar Bras(real size=0,real ratiob=.3)
{
return new bool(picture pic, path g, pen p, margin margin) {
real size=size == 0 ? barsize(p) : size;
BeginBra(size,ratiob)(pic,g,p,margin);
EndBra(size,ratiob)(pic,g,p,margin);
return true;
};
}
arrowbar BeginBra=BeginBra(),
Bra=Bra(),
EndBra=Bra(),
Bras=Bras();
import graph;
size(200,0);
//draw((2,1)--(1,1),BeginBra);
draw((0,0)..(1,1)..(-1,1),Bras);
real f (real x)
{
return cos(x);
}
ylimits(-.3,1.5);
xaxis("$x$",EndArrow);
yaxis("$y$",EndArrow);
draw(graph(f,-.5,2,operator ..));
real x0=1;
real delta=.4;
// f décroissante
path hline1=(0,f(x0-delta))--graph(f,x0-delta,x0+delta)--(x0+delta,0)--(x0-delta,0)--(x0-delta,f(x0+delta))--(0,f(x0+delta))--cycle;
fill(hline1,gray+opacity(.5));
draw(hline1,blue);
draw((x0-delta,0)--(x0+delta,0),blue+bp,Bras);
draw((0,f(x0+delta))--(0,f(x0-delta)),blue+bp,Bras);
draw(graph(f,x0-delta,x0+delta),blue+bp);