Procédure maple...:s

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
Heure
Membre Naturel
Messages: 44
Enregistré le: 04 Avr 2010, 19:51

Procédure maple...:s

par Heure » 07 Mai 2010, 18:44

Voilà en fait j'ai trouvé un programme maple sur un site dont j'ai perdu la trace :( et j'ai un petit problème pour comprendre le fonctionnement des procedures perspproj et polydecode.
Si quelqu'un pouvait m'expliquer un peu:s
C'est pour projeté l'hypercube, hypercube est sous forme de liste des points, faces et cubes qui le composent. Persproj est censée le projeter dans l'espace orthogonal à vect{X} et f je pense est un coefficient de grandissement...
Quant-à polydecode c'est pour réordonner les points mais pourquoi le faut-il? La procédure me laisse perplexe mais sans.. ça ne marche plus:(




> p[1]:=[-1,-1,-1,-1]: p[2]:=[1,-1,-1,-1]: p[3]:=[-1,1,-1,-1]: p[4]:=[1,1,-1,-1]:
> p[5]:=[-1,-1,1,-1]: p[6]:=[1,-1,1,-1]:p[7]:=[-1,1,1,-1]: p[8]:=[1,1,1,-1]:
> p[9]:=[-1,-1,-1,1]: p[10]:=[1,-1,-1,1]: p[11]:=[-1,1,-1,1]: p[12]:=[1,1,-1,1]:
> p[13]:=[-1,-1,1,1]: p[14]:=[1,-1,1,1]: p[15]:=[-1,1,1,1]:p[16]:=[1,1,1,1]:
>
> f[1]:=[1,5,13,9]: f[2]:=[2,6,14,10]:f[3]:=[3,7,15,11]: f[4]:=[4,8,16,12]:
> f[5]:=[1,3,11,9]: f[6]:=[2,4,12,10]:f[7]:=[5,7,15,13]: f[8]:=[6,8,16,14]:
> f[9]:=[1,2,10,9]: f[10]:=[3,4,12,11]:f[11]:=[5,6,14,13]:f[12]:=[7,8,16,15]:
> f[13]:=[1,3,7,5]: f[14]:=[2,4,8,6]:f[15]:=[9,11,15,13]: f[16]:=[10,12,16,14]:
> f[17]:=[1,2,6,5]: f[18]:=[3,4,8,7]:f[19]:=[9,10,14,13]:f[20]:=[11,12,16,15]:
> f[21]:=[1,2,4,3]: f[22]:=[5,6,8,7]:f[23]:=[9,10,12,11]:f[24]:=[13,14,16,15]:
>
> c[1]:=[1,3,5,7,13,15]:c[2]:=[2,3,6,8,14,16]:c[3]:=[1,2,9,11,17,19]:c[4]:=[3,4,10,12,18,20]:
>c[5]:=[5,6,9,10,21,23]:c[6]:=[7,8,11,12,22,24]:c[7]:=[13,14,17,18,21,22]:c[8]:=[15,16,19,20,23,24]:
>
> hypercube:=[[seq(p[i],i=1..16)],[seq(f[i],i=1..24)],[seq(c[i],i=1..8)]]:
>
> perspproj:=proc(P,X,f) local a,b,c,d,n,i,p1,p2,p3,p4,g,q1,q2,q3,q4;
> a:=X[1];b:=X[2];c:=X[3];d:=X[4];
> n:=sqrt(a^2+b^2+c^2+d^2);

> for i from 1 to nops(P[1]) do;
> p1:=P[1][i][1];p2:=P[1][i][2];
> p3:=P[1][i][3];p4:=P[1][i][4];
> p1:=p1-f*a/n;p2:=p2-f*b/n;
> p3:=p3-f*c/n;p4:=p4-f*d/n;
> g:=-n*f/(a*p1+b*p2+c*p3+d*p4);
> q1[i]:=g*p1;q2[i]:=g*p2;q3[i]:=g*p3;q4[i]:=g*p4;> od;

> [[seq([(q1[i]*d+q2[i]*c-q3[i]*b-q4[i]*a)/n,
> (-q1[i]*c+q2[i]*d+q3[i]*a-q4[i]*b)/n,
> (q1[i]*b-q2[i]*a+q3[i]*d-q4[i]*c)/n],
> i=1..nops(P[1]))],P[2],P[3]];
> end:
>
> polydecode:=proc(P) local i,j;
> [seq([seq(P[1][P[2][i][j]],j=1..nops(P[2][i]))],
> i=1..nops(P[2]))];
> end:



 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 9 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite