N'exporter qu'une partie de la figure

Tout ce qui concerne le langage Asymptote. Ce langage est utilisable sur le forum via les balises asy.
[participation réservée aux utilisateurs inscrits]
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 : 8115
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

N'exporter qu'une partie de la figure

Message non lu 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. Rejoignez notre partenaire pCloud et bénéficiez de 10Go de stockage gratuits ou d'une offre premium !
Pas d'aide en message privé. Merci de consulter ce sujet avant de poster votre premier message.
OG
Modérateur honoraire
Modérateur honoraire
Messages : 2293
Inscription : lundi 12 mars 2007, 11:20
Localisation : Rouen

Message non lu 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 : 8115
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

Message non lu 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]
Pièces jointes
asymptote_clip.png
asymptote_clip.png (24.27 Kio) Consulté 2216 fois
MB. Rejoignez notre partenaire pCloud et bénéficiez de 10Go de stockage gratuits ou d'une offre premium !
Pas d'aide en message privé. Merci de consulter ce sujet avant de poster votre premier message.