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 membres 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 : 7898
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 pCloud et bénéficiez de 10Go de stockage en ligne gratuits)
Pas d'aide en message privé. Merci de consulter ce sujet avant de poster votre premier message.
projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 2150
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 : 7898
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 pCloud et bénéficiez de 10Go de stockage en ligne gratuits)
Pas d'aide en message privé. Merci de consulter ce sujet avant de poster votre premier message.