Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
GreG
Inscrit le: 02 Avr 2007 Messages: 6
|
Posté le: 03 Avr 2007 13:22 Sujet du message: |
|
|
Salut,
J'ai testé cette programmation sur Maple et elle marche très bien. Cependant, j'aimerais savoir si il est possible de matérialiser les trajectoires par des traits (pour mettre en évidence des formes géométriques particulières).
Merci |
|
Revenir en haut de page |
|
 |
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 03 Avr 2007 14:20 Sujet du message: |
|
|
Oui, il est toujours possible de peaufiner cette procédure. Greg, vous allez nous écrire ça j'en suis sur!! |
|
Revenir en haut de page |
|
 |
GreG
Inscrit le: 02 Avr 2007 Messages: 6
|
Posté le: 03 Avr 2007 20:00 Sujet du message: |
|
|
ALS a écrit: | Greg, vous allez nous écrire ça j'en suis sur!! | Euh j'ai pas tout saisi mais je vais essayer de me débrouiller tout seul  |
|
Revenir en haut de page |
|
 |
GreG
Inscrit le: 02 Avr 2007 Messages: 6
|
Posté le: 22 Avr 2007 16:51 Sujet du message: |
|
|
En retravaillant cette procédure, je n'arrive pas à comprendre comment fonctionnent les frottements, notamment lorsque tu fais "fricx := -fricx" D'autre part, le 0.98 est-il le coefficient de frottements ?
Merci d'avance  |
|
Revenir en haut de page |
|
 |
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 24 Avr 2007 8:38 Sujet du message: |
|
|
Bonjour,
fricx:=-fricx : on change le signe de cette variable pour assurer un rebond contre une des parois.
Quant au coeff 0.98, on peut sans problème le remplacer par 1:
x := evalf(x+ cos(alpha)*fricx);
y := evalf(y+ sin(alpha)*fricy);
A+ |
|
Revenir en haut de page |
|
 |
GreG
Inscrit le: 02 Avr 2007 Messages: 6
|
Posté le: 26 Mai 2007 13:40 Sujet du message: |
|
|
Je pense avoir tout saisi merci
Edit : en fait ma proc ne marche pas il me répond "unable to parse" apres le "return".
trajectoire:=proc(X,Y,alpha,n,xmin,xmax,ymin,ymax,u,v)
x:=X: y:=Y: auxu:=u: auxv:=v: L:=[x,y]:
for k from 1 to n do
x:=evalf(x+cos(alpha)*auxu):
y:=evalf(y+sin(alpha)*auxv):
if (x>=xmax) then auxu:=-auxu: x:=evalf(xmax): end if:
if (x<=xmin) then auxu:=-auxu: x:=evalf(xmin): end if:
if (y>=ymax) then auxv:=-auxv: y:=evalf(ymax): end if:
if (y<=ymin) then auxv:=-auxv: y:=evalf(ymin): end if:
L:=L,[x,y]:
end do
return(plot([L]))
end proc;
merci d'avance |
|
Revenir en haut de page |
|
 |
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 26 Mai 2007 15:36 Sujet du message: |
|
|
Rajouter un ; après le dernier end do.
Code: |
trajectoire:=proc(X,Y,alpha,n,xmin,xmax,ymin,ymax,u,v)
x:=X: y:=Y: auxu:=u: auxv:=v: L:=[x,y]:
for k from 1 to n do
x:=evalf(x+cos(alpha)*auxu):
y:=evalf(y+sin(alpha)*auxv):
if (x>=xmax) then auxu:=-auxu: x:=evalf(xmax): end if:
if (x<=xmin) then auxu:=-auxu: x:=evalf(xmin): end if:
if (y>=ymax) then auxv:=-auxv: y:=evalf(ymax): end if:
if (y<=ymin) then auxv:=-auxv: y:=evalf(ymin): end if:
L:=L,[x,y]:
end do;
return(plot([L]))
end proc;
|
|
|
Revenir en haut de page |
|
 |
GreG
Inscrit le: 02 Avr 2007 Messages: 6
|
Posté le: 26 Mai 2007 18:05 Sujet du message: |
|
|
ça ne marche pas, si je met ; apres end do, il me met "Error, reserved word `return` unexpected" ...
Edit: c'est bon sa marche   en fait j'ai mis ; après le end do et j'ai enlevé return (j'ai remplacé par plot([L])). Par contre je comprend toujours pas pourquoi ça marchait pas ^^
Dernière édition par GreG le 26 Mai 2007 18:20; édité 1 fois |
|
Revenir en haut de page |
|
 |
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 26 Mai 2007 18:13 Sujet du message: |
|
|
Je l'ai testé sur mon PC, tout marche parfaitement.
A+ |
|
Revenir en haut de page |
|
 |
GreG
Inscrit le: 02 Avr 2007 Messages: 6
|
Posté le: 26 Mai 2007 18:21 Sujet du message: |
|
|
lol c'était surement mon Maple qui foirait ^^ merci à toi en tout cas  |
|
Revenir en haut de page |
|
 |
|