Obtenir une image avec une résolution fixée.

Pour toute demande d'aide sur des exemples non finalisés, c'est ici.
Les exemples aboutis et intéressants seront ajoutés aux sous-forums qui suivent.

Règles du forum
Pour toute demande d'aide pour la conception (ou la confirmation d'un code) d'une figure Asymptote, c'est ici.

J'invite ceux qui ont régulièrement des questions à poser à aller dans leur panneau de l'utilisateur pour indiquer dans la signature de leurs messages :

  1. Nom du système d'exploitation (W7 ou Ubuntu 12.04 ou ...)
  2. Version d'Asymptote et éditeur utilisé pour les figures Asymptote
  3. Distribution LaTeX et éditeur utilisé pour les tex.


On va gagner du temps dans les réponses !
Fabrice
Messages : 118
Enregistré le : sam. 13 mars 2010, 11:41

Obtenir une image avec une résolution fixée.

Message non lu par Fabrice » jeu. 15 août 2013, 11:42

Bonjour Gaëtan,
Ne parvenant pas à me connecter ces derniers jours sur ton site, je viens de poser le problème sur le forum d'Asymptote. Seulement, j'ai reçu un email "surprenant"
I am on vacation until August 26.

Andrei

donc, je refais une tentative, et cela marche !
Je souhaiterais faire une couverture pour un ebook. Par exemple, la résolution serait de 504x720. Le format de sortie serait svg, png ou jpg avec la qualité optimale permise par Asymptote.
Quelles options faut-il choisir en ligne de commande ?
Merci.

Code : Tout sélectionner

import polyhedron_js;

currentprojection=orthographic(5,3,2);
currentlight.background=black;
settings.render=8;

size(10cm);

int a=6;
pen p=ZapfChancery(series="m",shape="n");

triple O=(0,0,0), M1=a*X, M2=a*(X+Y), M3=a*Y, M4=a*(X+Y/2+(sqrt(3)/2)*Z);

polyhedron pyra;
pyra[0]=M1--M2--M4--cycle;
pyra[1]=M2--M3--M4--cycle;
pyra[2]=M3--O--M4--cycle;
pyra[3]=O--M1--M4--cycle;
pyra[4]=O--M1--M2--M3--cycle;

draw(surface(pyra),invisible,white+0.5bp);

transform3 hom(real k, triple v){
  return shift(v)*scale3(k)*shift(-v);
}

triple[] Z1={};
triple[] Z2={};
triple[] Z3={};

for(int i=1 ; i<a; ++i){
  Z1.push(hom(i/a,M1)*M2);
  Z2.push(hom(i/a,M2)*M4);
  Z3.push(hom(i/a,M1)*M4);
}

for(int i=0 ; i<=a-2 ; ++i){
  draw(Z3[i]--Z2[i],white);
  draw(Z1[i]--Z3[i],white);
  draw(Z1[i]--Z2[a-2-i],white);
}

triple[] T1={};
triple[] T2={};
triple[] T3={};

for(int i=1 ; i<a; ++i){
  T1.push(hom(i/a,M2)*M3);
  T2.push(hom(i/a,M3)*M4);
  T3.push(hom(i/a,M2)*M4);
}

for(int i=0 ; i<=a-2 ; ++i){
  draw(T3[i]--T2[i],white);
  draw(T1[i]--T3[i],white);
  draw(T1[i]--T2[a-2-i],white);
}

triple[] P1={};
triple[] P2={};
triple[] P3={};

for(int i=1 ; i<a; ++i){
  P1.push(hom(i/a,O)*M3);
  P2.push(hom(i/a,M3)*M4);
  P3.push(hom(i/a,O)*M4);
}

for(int i=0 ; i<=a-2 ; ++i){
  draw(P3[i]--P2[i],white);
  draw(P1[i]--P3[i],white);
  draw(P1[i]--P2[a-2-i],white);
}

triple[] Q1={};
triple[] Q2={};
triple[] Q3={};

for(int i=1 ; i<a; ++i){
  Q1.push(hom(i/a,M1)*O);
  Q2.push(hom(i/a,O)*M4);
  Q3.push(hom(i/a,M1)*M4);
}

for(int i=0 ; i<=a-2 ; ++i){
  draw(Q3[i]--Q2[i],white);
  draw(Q1[i]--Q3[i],white);
  draw(Q1[i]--Q2[a-2-i],white);
}

label(scale(1.5)*"Math\'ematiques",(0,0,5),p+white);
Debian Strech + Asymptote 2.42-12 + Emacs24 + TeXLive 2017

Avatar du membre
GM
Administrateur du site
Administrateur du site
Messages : 1512
Enregistré le : dim. 7 mars 2010, 14:50

Re: Obtenir une image avec une résolution fixée.

Message non lu par GM » jeu. 15 août 2013, 13:22

Bonjour Fabrice,
Fabrice a écrit :Ne parvenant pas à me connecter ces derniers jours sur ton site, ...

En pleine restructuration de mon garage depuis une semaine, j'ai dû démonter, pendant une journée, tout le coin serveur : j'aurais dû prévenir.

Fabrice a écrit :Je souhaiterais faire une couverture pour un ebook. Par exemple, la résolution serait de 504x720.


Pourquoi ne pas tenter ce genre de chose pour avoir la bonne proportion

Code : Tout sélectionner

size(504,720);

... et après faire un "resize" avec n'importe quel logiciel de dessin, pour avoir les dimensions en nombres de pixels ?

Cette histoire de nombre de pixels, je me l'étais posée quand j'avais cherché à comprendre ce que j'obtenais comme taille d'images pour la galerie : j'ai oublié les détails, mais regarde le commentaire de cet exemple : http://www.marris.org/asymptote/Frame_Picture/index.html#fig_fa01_090210_frame.
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !

Répondre