Apprendre Maple Index du Forum Apprendre Maple
Site dédié au logiciel de calcul formel Maple
 
  Page d'accueilPage d'accueil   FAQFAQ    RechercherRechercher    Liste des MembresListe des Membres    Groupes d'utilisateursGroupes d'utilisateurs 
S'enregistrerS'enregistrer    ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

aire d'un polygone - tapis de sierpinski

 
Poster un nouveau sujet   Répondre au sujet    Apprendre Maple Index du Forum -> Maple en géométrie
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
F0rM



Inscrit le: 01 Mai 2006
Messages: 15

MessagePosté le: 01 Mai 2006 0:14    Sujet du message: aire d'un polygone - tapis de sierpinski Répondre en citant

J'ai trouvé une formule pour calculer l'aire d'un polygone à "n" cotés, mais je ne sais pas comment la démontrer, il s'agit de

A = n * a^2 /4 * cot(Pi / n)

A : surface
n: nombre de cotés
a: longueur d'un coté
cot : fonction cotangente (1/tangente)

qqun sait comment on démontre ca en maths ?
Note : pour n tres grand avec une série de taylor(au premier ordre) et en inversant et en laissant tendre n vers 2pi je retrouve pi*a^2...car n tend vers l'infini donne A = infini !

Ma question maple, cest comment on fait le tapis de sierpinski ? Vous savez prendre un carré le découpé en 4 parties égales, ensuite prendre chacune des parties, découper encore en 4 etc... j'imagine que c'est possible de définir la longueur et la largeur du tapis, et la couleur de remplissage etc...
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
totor
Invité





MessagePosté le: 01 Mai 2006 10:51    Sujet du message: Répondre en citant

Bonjour, pour le tapis de Sirpinski, c'est plutot en 3 qu'il faut découper chaque carré et enlever le carré central...
Revenir en haut de page
ALS
Invité





MessagePosté le: 02 Mai 2006 12:21    Sujet du message: Re: tapis de Sierpinski à l'ordre n Répondre en citant

Code:

> restart;
> with(plots): with(plottools): with(linalg):
 
># Dessin de la cellule de la position (ligne,colonne) dans la grille n x n , avec une couleur RGB(a,b,c)   a,b,c entre 0 et 1:
> dessin:=proc(ligne,colonne,n,a,b,c)
> local x,y;
> x:=colonne-1; y:=n-ligne;
> polygon([[x,y],[colonne,y],[colonne,y+1],[x,y+1]],color=COLOR(RGB,a,b,c));
> end proc:

> # matrice des codes 1 ou 0 suivant que le carré est pris ou non 
> code:=proc(n::nonnegint)
> local i,j,m,c,p,q;
> if n=0 then return matrix(1,1,1)
> else
>   m:=matrix(3^n,3^n,1):
>   c:=code(n-1):
>   for i to rowdim(c) do
>     for j to coldim(c) do
>       if c[i,j]=1 then m[3*(i-1)+2,3*(j-1)+2]:=0 else
>         for p to 3 do for q to 3 do m[3*(i-1)+p,3*(j-1)+q]:=0 od od
>        fi
>     od
>   od;
>   evalm(m)
> end if
> end proc:
>
> code(0);

                                 [1]

> code(1);

                            [1    1    1]
                            [           ]
                            [1    0    1]
                            [           ]
                            [1    1    1]

> code(2);

             [1    1    1    1    1    1    1    1    1]
             [                                         ]
             [1    0    1    1    0    1    1    0    1]
             [                                         ]
             [1    1    1    1    1    1    1    1    1]
             [                                         ]
             [1    1    1    0    0    0    1    1    1]
             [                                         ]
             [1    0    1    0    0    0    1    0    1]
             [                                         ]
             [1    1    1    0    0    0    1    1    1]
             [                                         ]
             [1    1    1    1    1    1    1    1    1]
             [                                         ]
             [1    0    1    1    0    1    1    0    1]
             [                                         ]
             [1    1    1    1    1    1    1    1    1]

                   
> # dessin du tapis de Sierpinski à l'ordre n:
> tapis:=proc(n::nonnegint)
> local k,u,s,i,j,T;
> u:=-1:
> s:=code(n):
> T:=NULL:
> for i to rowdim(s) do
>   for j to coldim(s) do
>     if s[i,j]=1 then T:=T,dessin(i,j,n,1,1,1) else T:=T,dessin(i,j,n,0.5,1,0) fi
>   od
> od:
> display({T},scaling=constrained,axes=none);
> end proc:
>
> tapis(0);

> tapis(1);

> tapis(2);

> tapis(3);

> tapis(4);  # un peu lent pour les valeurs n>4



Pour visionner le tapis pour n=4, cliquez ici:
http://alamanya.free.fr/telechar/Tapis_Sierpinski.jpg
Revenir en haut de page
F0rM



Inscrit le: 01 Mai 2006
Messages: 15

MessagePosté le: 05 Mai 2006 23:42    Sujet du message: Répondre en citant

J'aimerais avoir seulement le tapis, pas de quadrillage, parce que dans maple avec n=5 on voit rien, alors que matlab avec un algorithme différent qui utilise beaucoup moins de mémoire, ca prend seulement 30 secondes pour n=5 par exemple, mais j'ai des problèmes de centrages, alors j'aimerais beaucoup savoir comment je peux faire pour enlever le quadrillage dans maple

merci ALS

F0rM
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
ALS
Invité





MessagePosté le: 06 Mai 2006 8:13    Sujet du message: Répondre en citant

Bonjour, on pourrait avoir cet algorithme MatLab?
Pour enlever le quadrillage, il suffit de partir d'un carré de 3^n x 3^n cellules et connaissant la matrice M de codage (procédure code) colorier en vert chaque cellule (i,j) correspondant au code M[i,j]=0.
A+
Revenir en haut de page
F0rM



Inscrit le: 01 Mai 2006
Messages: 15

MessagePosté le: 06 Mai 2006 22:39    Sujet du message: Répondre en citant

Bonjour, ALS, a partir du code maple que tu mas fourni, tu pourrais mindiquer ce que je dois changer stp ? merci davance

je donne le code matlab pour le tapis de sierpinski... a noter que ce code contient 6 fichiers et qu'il fait aussi le triangle de sierpinski correctement jusqu'a n=7 et le triangle de Pascal jusqu'a n=7, je me demande si c'est possible d'aller a un niveau supérieur par exemple jusqu'a n=10, sauf il faudrait rajouter trop de code je penses pour rien et on ne verrait pas grand choses de tout facon..

Essaies le code matlab pour le tapis avec n=5, ca prend environ 45 secondes peut etre moins, moi jai un pauvre P3 1GHz avec 512 MB SDRAM. Je fais comment pour envoyer les fichiers matlab en piece jointe ? je ne connais pas beaucoup les forum[/code]
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
ALS
Invité





MessagePosté le: 07 Mai 2006 8:32    Sujet du message: Répondre en citant

Adresse les moi par mail.
Revenir en haut de page
ALS
Invité





MessagePosté le: 08 Mai 2006 11:39    Sujet du message: Re: tapis de Sierpinski Répondre en citant

Sans le quadrillage:

Code:

> restart;
> with(plots): with(plottools): with(linalg):
 
> # Dessin de la cellule de la position (ligne,colonne) dans la grille n x n , avec une couleur RGB(a,b,c)   a,b,c entre 0 et 1:
> dessin:=proc(ligne,colonne,n,a,b,c)
> local x,y;
> x:=colonne-1; y:=ligne-1;
> polygon([[x,y],[colonne,y],[colonne,y+1],[x,y+1]],color=COLOR(RGB,a,b,c));
> end proc:
 
> code:=proc(n::nonnegint)
> local i,j,m,c,p,q;
> if n=0 then return matrix(1,1,1)
> else
>   m:=matrix(3^n,3^n,1):
>   c:=code(n-1):
>   for i to rowdim(c) do
>     for j to coldim(c) do
>       if c[i,j]=1 then m[3*(i-1)+2,3*(j-1)+2]:=0 else
>         for p to 3 do for q to 3 do m[3*(i-1)+p,3*(j-1)+q]:=0 od od
>        fi
>     od
>   od;
>   evalm(m)
> end if
> end proc:
 
> code(0);
> code(1);
> code(2);
> code(3);

> tapis:=proc(n::nonnegint)
> local n1,u,s,i,j,T;
> u:=-1:
> s:=code(n): n1:=rowdim(s):
> T:=line([0,0], [n1,0], color=black),line([n1,0], [n1,n1], color=black),line([n1,n1], [0,n1],color=black),line([0,n1], [0,0], color=black);
> for i to n1 do
>   for j to n1 do
>     if s[i,j]=0 then T:=T,dessin(i,j,n,0,0,0) fi
>   od
> od:
> display({T},scaling=constrained,axes=none);
> end proc:
 
> tapis(0);
> tapis(1);
> tapis(2);
> tapis(3);
> tapis(4);
> tapis(5);

Revenir en haut de page
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Apprendre Maple Index du Forum -> Maple en géométrie Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


phpBB

Développé par phpBB © 2001, 2006 phpBB Group
Traduction par : phpBB-fr.com


Apprendre Maple - ©  - Alain Le Stang - Navigation optimisée pour une résolution 1024 x 768.