N'hésitez pas à consulter les offres premium proposées par le service de stockage en ligne pCloud et inscrivez-vous afin d'obtenir 10Go de stockage gratuits.
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.
je m'intéresse à Asymptote notamment pour sa gestion de la 3D et plus particulièrement de tout ce qui relève des vues en perspective. Les schémas que j'aimerais dessiner sont relativement simples. Lors de mes enquêtes préliminaires, je me suis concentré sur la gestion des flèches en 3D. Suivant les options de compilation (et plus particulièrement settings.render=0; et settings.prc=false; qui sont mes options par défaut), j'ai l'impression qu'il n'est pas possible de dessiner une tête de flèche en 3D mais sans gradient avec un rendu purement vectoriel. A ma connaissance, les options ci-dessus conservent l'aspect vectoriel mais aplatissent les têtes de flèches. Si on commente ces options, le rendu des têtes de flèches est bien 3D mais pixelisé. Pour ma part, j'aimerais obtenir des cônes sans gradient et vectoriels : y a-t-il une solution ?
// compilation avec asy -f pdf fig6
if(!settings.multipleView) settings.batchView=false;
settings.tex="pdflatex";
import three;
settings.render=0;
settings.prc=false;
currentprojection=perspective(5,5,3,center=true);
size3(6cm);
// déclaration des points
triple O=(0,0,0);
triple A=(1,0,0), B=(0,1,0), C=(0,0,1);
triple a=(-.5,0,0), b=(0,-.5,0), c=(0,0,-.5);
// déclaration des chemins
path3 segaA=a--A;
path3 segbB=b--B;
path3 segcC=c--C;
// tracer des chemins
draw(segaA,red+linewidth(1pt),Arrow3(3mm));
draw(segbB,green+linewidth(1pt),Arrow3(3mm));
draw(segcC,black+linewidth(1pt),Arrow3(3mm));
Compilées telles quelles, les têtes sont aplaties. Sinon, j'imagine qu'il est possible de programmer ses propres styles de flèches avec des cônes mais pour l'instant, ça me dépasse. Ma question concerne plutôt les commandes de bases.
pluton a écrit :... j'ai l'impression qu'il n'est pas possible de dessiner une tête de flèche en 3D mais sans gradient avec un rendu purement vectoriel. A ma connaissance, les options ci-dessus conservent l'aspect vectoriel mais aplatissent les têtes de flèches. Si on commente ces options, le rendu des têtes de flèches est bien 3D mais pixelisé. Pour ma part, j'aimerais obtenir des cônes sans gradient et vectoriels : y a-t-il une solution ?
settings.render=0 crée une projection vectorielle en 2D. Pour une solution vectorielle, je ne vois pas, mais on peut nettement améliorer la qualité en passant par exemple à :
(on peut augmenter la qualité en augmentant le nombre, mais le poids du fichier va considérablement augmenter...)
Après, il y a aussi la sortie OpenGL, via la compilation "asy -V" qui permet de bouger la figure sans passer par le format prc, tout dépend de ce que l'on veut faire.
bon, j'ai regardé rapidement la commande pour créer des cônes qui serviraient de têtes de flèches. Il n'y a aucune automatisation mais puisque les schémas que j'ai en tête sont assez simples, c'est envisageable de continuer sur cette voie. Je vois aussi que TexGraph est une alternative probablement très pertinente puisqu'il propose aussi des têtes de flèches coniques. Alors voici ce que j'ai :
Du fait du point de vue et de l'organisation du code, il y a un problème avec la flèche du haut : le cône qui joue le rôle de la tête est tracé après le trait de la flèche.
Je suis assez étonné par ce résultat. Je pensais qu'Asymptote serait capable de calculer ce qui est "devant" et ce qui est "derrière" quel que soit l'ordre des lignes de code.
Je vais continuer.
pluton a écrit :
Je suis assez étonné par ce résultat. Je pensais qu'Asymptote serait capable de calculer ce qui est "devant" et ce qui est "derrière" quel que soit l'ordre des lignes de code.
Pas avec settings.render=0;. Les éléments sont rajoutés les uns sur les autres.
On peut toujours se débrouiller en changeant l'ordre du code, mais ce ne sera que du bidouillage.
pluton a écrit :oui merci. Une amélioration d'Asymptote sur cette question est-elle au programme ?
Je ne sais pas, mais si quelqu'un a du temps il n'y a qu'à. Je pense qu'à partir de ce qui
traîne ici ou ailleurs il est possible de faire une extension qui s'occupe de 3D
simple vectorisée.