Hachures

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.
Arnaud
Modérateur global
Modérateur global
Messages : 7095
Inscription : lundi 28 août 2006, 13:18
Localisation : Allemagne

[Résolu] Hachures

Message par Arnaud »

Salut,

J'ai un petit soucis de hachures : les codes que j'avais il y a un an ne produisent aucune erreur, mais les hachures n'y apparaissent plus.
Doutant de ma syntaxe, je prends une figure de référence que je compile moi-même : http://www.marris.org/asymptote/Courbes ... re_courbes

Et là c'est le drame : même pour cette figure de référence aucune hachure ne décide de se montrer.

Petit test sur mathematex :

Code : Tout sélectionner

import graph_pi;
import patterns;
usepackage("mathrsfs");

size(8cm,0);

graphicrules(xunit=1cm, yunit=1cm,
             xmin=-1, xmax=4,
             ymin=-3, ymax=3,
             crop=Crop
             );
// Définition et tracé de la grille
grid(xStep=1, xstep=.5,
     yStep=1, ystep=.5,
     pTick=.7bp+.7white, 
     ptick=.7bp+dotted+.7white,
     above=false
     );
// Définition et tracé des axes
cartesianaxis(
    xticks=Ticks(Label(Fill(white)),
                 Step=1, step=.5,
                 NoZero,
                                 ptick=grey),
    yticks=Ticks(Label(Fill(white)),
                 Step=2, step=1,
                 NoZero,
                 ptick=grey),
    Arrow
    );
// Définition des fonctions
real f(real x) {return 2x-x^2;}
real g(real x) {return x;}
 
// Les hachures.
path zonehachuree=buildcycle(graph(f,0,3),(3,-5)--(3,5),graph(g,3,0));
add("hachure",hatch(H=1mm,dir=SE,lightgray));
fill(zonehachuree,pattern("hachure"));

// Tracé de courbe
path Cf=graph(f,-1.5,4.5,n=400);
path Cg=graph(g,-1.5,4.5,n=400);
draw(Cf,1bp+blue);
draw(Cg,dashed+1bp+red);
xlimits(-1.5,4.5,Crop);
ylimits(-3.5,3.5,Crop);
label("$\mathscr{C}_f$",(2.5,f(2.5)),SW,blue);
label("$\mathscr{C}_g$",(2.5,g(2.5)),NW,red);  

labeloij(p=1.4bp+.5*red,
         arrow=Arrow(SimpleHead,8bp),
         dot
         );
Ca marche sur mathematex...bon je ne sais pas trop d'où peut bien provenir l'erreur ( version 2.13 d'asymptote ).
Dernière modification par MB le samedi 30 mai 2020, 11:48, modifié 1 fois.
Raison : Le module graph_pi n'est plus supporté par la nouvelle version du forum.
Arnaud
Un peu d'info - Pyromaths - Pas d'aide en MP (non plus)

Arnaud
Modérateur global
Modérateur global
Messages : 7095
Inscription : lundi 28 août 2006, 13:18
Localisation : Allemagne

Re: Hachures

Message par Arnaud »

Et mon code qui ne marche pas chez moi :

Code : Tout sélectionner

import graph_pi;
import patterns;
usepackage("mathrsfs");

size(8cm,0);

graphicrules(xunit=1cm, yunit=1cm,xmin=0, xmax=3.5,ymin=-2.5, ymax=1.5);

grid(xStep=1, xstep=.5,yStep=1, ystep=.5,pTick=.7bp+.7white,ptick=.7bp+dotted+.7white,above=false);

cartesianaxis(xticks=Ticks(Label(Fill(white)),Step=1,step=1,NoZero,ptick=grey),
              yticks=Ticks(Label(Fill(white)),Step=2,step=1,NoZero,ptick=grey),Arrow);

real g(real x) {return (x^2+1)/(1+x^3);}
path Cg=graph(g,1,3,n=400);

real f(real x) {return -x^3/(x+10);}
path Cf=graph(f,1,3,n=400);

path zonehachuree=buildcycle((1,1)--(1,-1/11),graph(f,1,3),(3,-27/13)--(3,5/14),graph(g,3,1));
add("hachure",hatch(H=1mm,dir=SE,orange));
fill(zonehachuree,pattern("hachure"));

draw(Cg,linewidth(1bp)+blue);
draw(Cf,linewidth(1bp)+green);
draw((1,g(1))--(1,f(1)),dashed+darkgreen);
draw((3,g(3))--(3,f(3)),dashed+darkgreen);

xlimits(-1,4,Crop);
ylimits(-3,2,Crop);

label("$\mathscr{C}_f$",(3,f(3)),E,green);
label("$\mathscr{C}_g$",(3,g(3)),E,blue);

labeloij(p=1.4bp+.5*red,arrow=Arrow(SimpleHead,8bp),dot);
( peut-être que je devrais simplement écrire un petit script qui compile mes figures directement chez mathematex... )
Dernière modification par MB le samedi 30 mai 2020, 11:48, modifié 1 fois.
Raison : Le module graph_pi n'est plus supporté par la nouvelle version du forum.
Arnaud
Un peu d'info - Pyromaths - Pas d'aide en MP (non plus)

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

Re: Hachures

Message par GMaths »

Les deux codes fonctionnent chez moi avec la version 2.13 sous windows7.

Bizarre, bizarre...

Arnaud
Modérateur global
Modérateur global
Messages : 7095
Inscription : lundi 28 août 2006, 13:18
Localisation : Allemagne

Re: Hachures

Message par Arnaud »

D'un côté c'est rassurant.
De l'autre cela me laisse perplexe.

Mes tests se sont déroulés avec une compilation latexmk et une autre directement :

Code : Tout sélectionner

asy -f pdf test.asy
Arnaud
Un peu d'info - Pyromaths - Pas d'aide en MP (non plus)

Arnaud
Modérateur global
Modérateur global
Messages : 7095
Inscription : lundi 28 août 2006, 13:18
Localisation : Allemagne

Re: Hachures

Message par Arnaud »

Résolu : c'est la visionneuse de document qui n'arrive pas à afficher les hachures, rien à voir avec asymptote.
Arnaud
Un peu d'info - Pyromaths - Pas d'aide en MP (non plus)

chellier
Modérateur
Modérateur
Messages : 355
Inscription : samedi 25 juillet 2009, 12:25
Localisation : Le Creusot

Re: Hachures

Message par chellier »

Arnaud a écrit :Résolu : c'est la visionneuse de document qui n'arrive pas à afficher les hachures, rien à voir avec asymptote.
Oui, c'est un bogue que traîne evince depuis quelques temps. Même problème avec les flèches de la routine distance de geometry.asy :cry:
Mais avec Adobe Reader ou okular il n'y a pas de problème.

Christophe