N'exporter qu'une partie de la figure

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.
MB
Administrateur
Administrateur
Messages : 7144
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

N'exporter qu'une partie de la figure

Message par MB »

Bonjour, je suis toujours en train d'expérimenter Asymptote.

J'ai construit une figure (disons de taille 15x15) et en sortie je veux en récupérer qu'une partie (de taille 10x10 par exemple). J'ai regardé du côté de la commande shipout mais je n'ai rien trouvé. Je suppose que c'est quand même possible.

Quelqu'un aurait une idée ?
MB (Pas d'aide en Message Privé)
Merci d'utiliser MathJax (voir ici) et d'éviter le style SMS pour la lisibilité des messages.

OG
Modérateur
Modérateur
Messages : 2293
Inscription : lundi 12 mars 2007, 11:20
Localisation : Rouen

Message par OG »

Bonjour

avec clip ça devrait être possible. Peut-être que Ph. Ivaldi aura une autre solution.

Code : Tout sélectionner

size(15cm,15cm);
guide c1=circle((.5,.5),.5);
draw(c1);
guide c;
c=(0,0)--(10/15,0)--(10/15,10/15)--(0,10/15)--cycle;
draw(c);
clip(c);
Cordialement
O.G.

MB
Administrateur
Administrateur
Messages : 7144
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

Message par MB »

Merci OG, ça fonctionne parfaitement !

Code : Tout sélectionner

unitsize(1cm);

real n=5;
real a=30;
real m=n/cos(a*pi/180);

for (int i=1; i <= n; ++i)
  {
     draw((-n,-i)--(n,-i),mediumgray);
  }

for (int i=1; i <= n+2; ++i)
  {
     draw(rotate(-a,(-i,0))*((-i,-m*1.02)--(-i,m*1.02)),mediumgray); 
  }  

for (int i=1; i <= n; ++i)
  {
     draw((-n,i)--(n,i),mediumgray);
  }
  
for (int i=1; i <= n+2; ++i)
  {
     draw(rotate(-a,(i,0))*((i,-m*1.02)--(i,m*1.02)),mediumgray); 
  }

draw((-n,0)--(n,0),black,Arrow);
draw(rotate(-a,(0,0))*((0,-m)--(0,m)),black,Arrow); 

clip((-n*1.02,-n*1.02)--(n*1.02,-n*1.02)--(n*1.02,n*1.02)--(-n*1.02,n*1.02)--cycle);

shipout(bbox(xmargin=1mm,invisible));
[attachment=0]asymptote_clip.png[/attachment]
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
MB (Pas d'aide en Message Privé)
Merci d'utiliser MathJax (voir ici) et d'éviter le style SMS pour la lisibilité des messages.