Un nouveau défi
Un nouveau défi
Bonjour,
Vous connaissez sans doute l'éponge de Menger, solide fractale.
Cela ne doit pas beaucoup impressionner les asymptotiens de ce forum!
Alors pouvez vous fabriquet l'objet à l'étape 4?
http://fr.wikipedia.org/wiki/%C3%89ponge_de_Menger
Je vais y réfléchir de mon côté mais c'est peut être aller vite en besogne...
Xavier
Vous connaissez sans doute l'éponge de Menger, solide fractale.
Cela ne doit pas beaucoup impressionner les asymptotiens de ce forum!
Alors pouvez vous fabriquet l'objet à l'étape 4?
http://fr.wikipedia.org/wiki/%C3%89ponge_de_Menger
Je vais y réfléchir de mon côté mais c'est peut être aller vite en besogne...
Xavier
Re: Un nouveau défi!
Dans ta réflexion, si tu penses empiler des cubes souviens-toi... que ton pc avait quelques soucis avec 256 sphères...XavteX a écrit :Alors pouvez vous fabriquet l'objet à l'étape 4?
Je vais y réfléchir de mon côté
et donc... 8000 cubes ($20^3$), ce n'est pas gagné ! :D
Index des fonctions Asymptote- Pour consulter ou me demander des exemples : Galerie et AsyForum - Notepad++, l'éditeur qu'il faut pour Asymptote sous Windows - TexWorks+LaTexMk+Asymptote
Re: Un nouveau défi!
... oui, sauf que c'est l'étape 3 avec $20^2=400$ cubes ;-)
Index des fonctions Asymptote- Pour consulter ou me demander des exemples : Galerie et AsyForum - Notepad++, l'éditeur qu'il faut pour Asymptote sous Windows - TexWorks+LaTexMk+Asymptote
Re: Un nouveau défi!
Il y a toujours l'exemple de la gallerie officielle : SierpinskiSponge.asy.
C'est bien ca que tu cherche ...? Après, je ne maitrise pas ce genre de code.
Si la nuit m'inspire, peut être un code perso demain...
Bonne nuit, Maurice.
Code : Tout sélectionner
size(200);
import palette;
import three;
triple[] M={
(-1,-1,-1),(0,-1,-1),(1,-1,-1),(1,0,-1),
(1,1,-1),(0,1,-1),(-1,1,-1),(-1,0,-1),
(-1,-1,0),(1,-1,0),(1,1,0),(-1,1,0),
(-1,-1,1),(0,-1,1),(1,-1,1),(1,0,1),
(1,1,1),(0,1,1),(-1,1,1),(-1,0,1)
};
triple[] K={
(1,-1,-1),(1,0,-1),(1,1,-1),(1,1,0),
(1,1,1),(1,0,1),(1,-1,1),(1,-1,0),
(0,0,-1),(0,0,1),(0,-1,0),(0,1,0)
};
surface s;
void recur(triple p, real u, int level) {
if(level > 1 )
for(triple V : M)
recur(p+u*V,u/3,level-1);
else
for(triple V : K) {
transform3 T=shift(p)*scale3(u)*shift(V)*scale3(0.5);
surface t=T*surface((1,-1,-1)--(1,1,-1)--(1,1,1)--(1,-1,1)--cycle);
s.append(t);
s.append(scale3(-1)*t);
}
}
recur((0,0,0),1/3,3);
surface sf;
sf.append(s);
sf.append(rotate(90,Y)*s);
sf.append(rotate(90,Z)*s);
sf.colors(palette(sf.map(abs),Rainbow()));
draw(sf,render(compression=Low,merge=true));
Si la nuit m'inspire, peut être un code perso demain...
Bonne nuit, Maurice.
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
Re: Un nouveau défi!
:clapping:
Et en plus ça compile! c'est long mais ça compile!
Incroyable le peu de lignes de code!
Reste à y comprendre quelque chose...
On y voit translations et rotations... je pensais qu'il fallait passer par des homothéties...
Merci Maurice!
Xavier
Et en plus ça compile! c'est long mais ça compile!
Incroyable le peu de lignes de code!
Reste à y comprendre quelque chose...
On y voit translations et rotations... je pensais qu'il fallait passer par des homothéties...
Merci Maurice!
Xavier
Re: Un nouveau défi!
Je n'y suis absolument pour rien, c'est un exemple de la documentation officielle. Ce code, je n'y comprends rien de rien !...XavteX a écrit ::clapping:
Et en plus ça compile! c'est long mais ça compile!
Incroyable le peu de lignes de code!
Je vais essayer de produire un code plus simple (il sera forcément plus simple si c'est moi qui le fait) si j'ai le temps aujourd'hui (ou demain sinon)...
Bonne journée
Maurice
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
Re: Un nouveau défi!
Comment ai-je pu passer à côté d'un si joli exemple ? Je ne l'avais jamais vu... ou alors je l'ai oublié et Alzheimer me guette.maurice a écrit :Il y a toujours l'exemple de la gallerie officielle : SierpinskiSponge.asy.
J'ai essayé : recur((0,0,0),1/3,4);
mais il fallait s'en douter : out of memory
Dernière modification par GMaths le jeudi 20 janvier 2011, 12:54, modifié 1 fois.
Index des fonctions Asymptote- Pour consulter ou me demander des exemples : Galerie et AsyForum - Notepad++, l'éditeur qu'il faut pour Asymptote sous Windows - TexWorks+LaTexMk+Asymptote
Re: Un nouveau défi!
Avec trois scale3 dans le script... je te rassure : il y a bien des homothéties !XavteX a écrit :Reste à y comprendre quelque chose...
On y voit translations et rotations... je pensais qu'il fallait passer par des homothéties...
Bien sûr, la solution retenue n'est pas un empilage de cubes : ce ne pouvait qu'être un tracé des facettes, dans trois directions... pour avoir quelque chose de léger.
Index des fonctions Asymptote- Pour consulter ou me demander des exemples : Galerie et AsyForum - Notepad++, l'éditeur qu'il faut pour Asymptote sous Windows - TexWorks+LaTexMk+Asymptote
Re: Un nouveau défi
Pour ceux qui n'ont pas encore Asymptote prêt à compiler... on parle de cela :
Je peux fournir le pdf qui permet, avec acrobat reader, de faire tourner la figure à la souris... si cela intéresse quelqu'un qui n'a pas envie d'installer Asymptote.
Je peux fournir le pdf qui permet, avec acrobat reader, de faire tourner la figure à la souris... si cela intéresse quelqu'un qui n'a pas envie d'installer Asymptote.
Index des fonctions Asymptote- Pour consulter ou me demander des exemples : Galerie et AsyForum - Notepad++, l'éditeur qu'il faut pour Asymptote sous Windows - TexWorks+LaTexMk+Asymptote
Re: Un nouveau défi
Oui un tracé de facettes comme le fabuleux teapot de philippe Ivaldi...
Il faudra donc nous expliquer ce beau script GMaths!
:D
Il faudra donc nous expliquer ce beau script GMaths!
:D
Re: Un nouveau défi
Les deux exemples ne sont pas du tout comparables !XavteX a écrit :Oui un tracé de facettes comme le fabuleux teapot de philippe Ivaldi...
J'utilisais le mot facette pour "petite face", du fait de la taille petite des cubes : on trace des faces de cubes de façon réfléchie... au lieu d'avoir une gestion au niveau des cubes entiers, pour éviter les doublons de faces.
Fais comme moi :XavteX a écrit :Il faudra donc nous expliquer ce beau script
- réduis les points de M à huit(les deux premières lignes) que tu dessines en rouge,
- traces les points de K en bleu (deux coïncident avec deux de M),
- commente la ligne suivante : // s.append(scale3(-1)*t); pour supprimer des symétriques
- trace le cube de côté 2
- tu peux modifier u dans l'appel de recur, j'ai mis 1/2 : u=1 est intéressant pour comprendre.
- tu obtiens une figure comme celle-ci...
... que tu regardes, et tu t'écris tout seul chez toi : Eurêka !
Index des fonctions Asymptote- Pour consulter ou me demander des exemples : Galerie et AsyForum - Notepad++, l'éditeur qu'il faut pour Asymptote sous Windows - TexWorks+LaTexMk+Asymptote
Re: Un nouveau défi
Tiens, j'ai réalisé que la liste de K pouvait être réduite aux dix premiers points.
Les deux derniers sont inutiles compte tenu de la symétrie qui est ensuite utilisée : il suffit d'avoir 10 centres de cubes sur les 20.
Il y a quelques faces qui sont inutilement doublées dans la figure d'origine.
Ce serait éventuellement à faire remarquer sur le forum officiel.
Code : Tout sélectionner
(0,0,-1),(0,0,1) //,(0,-1,0),(0,1,0)
Il y a quelques faces qui sont inutilement doublées dans la figure d'origine.
Ce serait éventuellement à faire remarquer sur le forum officiel.
Index des fonctions Asymptote- Pour consulter ou me demander des exemples : Galerie et AsyForum - Notepad++, l'éditeur qu'il faut pour Asymptote sous Windows - TexWorks+LaTexMk+Asymptote
Re: Un nouveau défi
Déjà fait je suppose ? Tiens nous au courant, en attendant j'essaie de comprendre le code précédent.GMaths a écrit :Tiens, j'ai réalisé que la liste de K pouvait être réduite aux dix premiers points.
Les deux derniers sont inutiles compte tenu de la symétrie qui est ensuite utilisée : il suffit d'avoir 10 centres de cubes sur les 20.Code : Tout sélectionner
(0,0,-1),(0,0,1) //,(0,-1,0),(0,1,0)
Il y a quelques faces qui sont inutilement doublées dans la figure d'origine.
Ce serait éventuellement à faire remarquer sur le forum officiel.
Maurice
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
Re: Un nouveau défi
oui :-) ok :-)maurice a écrit :Déjà fait je suppose ? Tiens nous au courant
Sur le sujet, tu verras passer sur le net : "attracteur de 20 homothéties de rapport 1/3".maurice a écrit :en attendant j'essaie de comprendre le code précédent.
En exploitant une symétrie... il n'en faut plus que 10.
Index des fonctions Asymptote- Pour consulter ou me demander des exemples : Galerie et AsyForum - Notepad++, l'éditeur qu'il faut pour Asymptote sous Windows - TexWorks+LaTexMk+Asymptote
Re: Un nouveau défi
Trois mois plus tard... XavTeX relance le sujet de l'éponge (dans un nouveau sujet - était-ce utile ?) ce qui débouche sur une nouvelle proposition différente.
Index des fonctions Asymptote- Pour consulter ou me demander des exemples : Galerie et AsyForum - Notepad++, l'éditeur qu'il faut pour Asymptote sous Windows - TexWorks+LaTexMk+Asymptote