Qui sait dessiner une partition 3D avec des cubes ?

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

Re: Qui sait dessiner une partition 3D avec des cubes ?

Message non lu par MB »

Je précise que ce réglage va faire en sorte qu'une projection soit effectuée afin que le fichier eps généré soit en réalité une figure classique en deux dimensions.
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.
projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 2293
Inscription : samedi 29 décembre 2007, 00:58

Re: Qui sait dessiner une partition 3D avec des cubes ?

Message non lu par projetmbc »

Dans un cas, chaque save fait le calcul en 2D, et dans l'autre ce sera géré directement en amont.

Bonne ou mauvaise intuition ?
MB
Administrateur
Administrateur
Messages : 8096
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

Re: Qui sait dessiner une partition 3D avec des cubes ?

Message non lu par MB »

Je n'ai pas trop eu le temps de me pencher sur la question, mais il me semble que chaque add() va générer un fichier eps, qui sera en 3d sans render=0 et en 2d avec. Ensuite, c'est la commande convert d'ImageMagick qui va dans tous les cas repasser en 2d lors de la conversion au format gif pour l'animation.

Par ailleurs, les save() ne sont pas utiles ici. Le code suivant donne un résultat identique.

Code : Tout sélectionner

import animation;
import three;

settings.render = 0;

size(5cm);

void draw_cube(real x, real y, real z)
{
    draw(shift(x,y,z)*unitbox);
    draw(shift(x,y,z)*unitcube,palegray);
}

animation a;

draw(xscale3(7)*yscale3(3)*zscale3(4)*unitbox,invisible);

draw_cube(0,0,0);
a.add();

draw_cube(1,0,0);
a.add();

draw_cube(2,0,0);
a.add();

draw_cube(3,0,0);
a.add();

draw_cube(4,0,0);
a.add();

draw_cube(5,0,0);
a.add();

draw_cube(5,0,1);
a.add();

draw_cube(6,0,0);
a.add();

draw_cube(6,0,1);
a.add();

draw_cube(6,0,2);
a.add();

draw_cube(0,1,0);
a.add();

draw_cube(1,1,0);
a.add();

draw_cube(2,1,0);
a.add();

draw_cube(3,1,0);
a.add();

draw_cube(4,1,0);
a.add();

draw_cube(5,1,0);
a.add();

draw_cube(5,1,1);
a.add();

draw_cube(5,1,2);
a.add();

draw_cube(6,1,0);
a.add();

draw_cube(6,1,1);
a.add();

draw_cube(6,1,2);
a.add();

draw_cube(0,2,0);
a.add();

draw_cube(0,2,1);
a.add();

draw_cube(0,2,2);
a.add();

draw_cube(1,2,0);
a.add();

draw_cube(1,2,1);
a.add();

draw_cube(1,2,2);
a.add();

draw_cube(1,2,3);
a.add();

draw_cube(2,2,0);
a.add();

draw_cube(2,2,1);
a.add();

draw_cube(2,2,2);
a.add();

draw_cube(3,2,0);
a.add();

draw_cube(4,2,0);
a.add();

draw_cube(4,2,1);
a.add();

draw_cube(4,2,2);
a.add();

draw_cube(4,2,3);
a.add();

draw_cube(5,2,0);
a.add();

draw_cube(5,2,1);
a.add();

draw_cube(5,2,2);
a.add();

draw_cube(6,2,0);
a.add();

draw_cube(6,2,1);
a.add();

draw_cube(6,2,2);
a.add();

a.movie(loops=10,delay=500,options="-density 200");
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.