j'essaie de comprendre comment gérer des rebonds mais j'avoue que mes restes de cinétique laissent à désirer!
J'ai une équation paramétrique de ce type:
x = -g*t²/2 + v*cos(alpha)*t + x0
y = v * sin(alpha)*t + yo
où (x0;y0) sont les coordonnées de départ, g la gravité, alpha l'angle de tire et v la force données au tir.
Comment faire pour que la trajectoire soit une suite de rebond où l'energie perdu dépend d'un paramêtre correspondant à l'objet ou la nature du sol (bille de verre, balle en mousse, sol carrelé, herbe, ...)?
* rebond: une simple symétrie axiale par rapport à la normale au sol au point de contact. Prends (x1,y1)=le point de contact, remplace partout x0 et y0 par x1 et y1 respectivement, et remplace alpha par l'angle réfléchi, c'est-à-dire l'angle incident auquel tu as applique la symétrie (la transformation numérique à effectuer sur l'angle incident dépend de l'orientation de ton repère - ton orientation est bizarre (pourquoi appliquer la gravité en x???), donc je préfère ne pas m'avancer).
* énergie perdue: en plus des modifications pour le rebond (x0->x1, y0->y1, symétrie appliquée à alpha) multiplie v par une constante comprise entre 0 et 1.
erreur de ma part! -gt²/2 est bien dans y et pas dans x!
Bon, dans ce cas, tu as (i=angle incident, r=angle "réfléchi"): (i+r)/2=pi/2 <=> i+r=pi <=> r=pi-i.
eu..langle incident tu l'obtient bien comme ca
i=arcos((x-xo)/(v*t) nan?

Plus t'avance moins vite
Moins t'avance plus vite...
forums/406bin j'ai essaye le code vite fait, etle resultat est pas tres reel.
par exemple, pour un rebon sur une paroie verticale.
---- si la balle vient du haut=>le rebond va vers le haut
---- si la balle vient du bas==>rebond vers le haut(comme ds la realite)
donc on a le meme anglede rebond, kelke soit la provenance de la balle.c ptet du a la parite du cos.. alors comment kon fait, on doit gerer le signe de x-x0?

Plus t'avance moins vite
Moins t'avance plus vite...
forums/406t'as pas un coef de frottement ?
??
bin suffit de multiplier v par v*k
avec 0<k<1

Plus t'avance moins vite
Moins t'avance plus vite...
forums/406...hmmmmmmmdonc en fait pour trouver l'angle incident pour une verticale, je doit trouver a en fonction de y??
i=arcsin(y-y0 +g*t^2/2)/(v*t)
???

Plus t'avance moins vite
Moins t'avance plus vite...
forums/406Non, tu dois trouver ça en fonction de x et y.
i=arccos((x-xo)/(v*t))*sign(y-y0).
euh...
c koi en C la commande sign??

Plus t'avance moins vite
Moins t'avance plus vite...
forums/406ok merci j'avais trouver tout seul
c'etait tellement difficile d'ailleur....

Plus t'avance moins vite
Moins t'avance plus vite...
forums/406" - euh...
c koi en C la commande sign??
- (y-y0>=0)?1:-1 "
hein !?
C'est 100.000 fois mieux l'assembleur !
Edit: Sinon, en basic c'est (y-y0)/abs(y-y0).
What kind of technology is this?
nan ... tu aurais fait comment en asm ? testé le MSB ?
Tu peux faire ça en C aussi:
if (y-y0<0) result=-result;
Link Le 21/06/2003 à 15:31 Galmiza -> Erreur en TI-Basic: sign(0)=Infini dans ce cas
'remarque ce n'est pas plus stupide que sign(0)=+-1
Il ne pourraient pas faire tout simplement sign(0)=0 comme en antique Basic Amstrad ?
Ca faciliterait grandement les calculs, on pourrait enfin faire a+sign(b)... C'est comme utiliser true et false, c'est stupide... Ils auraient pu faire false=0 et true=1 (C) ou -1 (vieux Basic Amstrad encore)

Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.
En TI-BASIC, on utilise sign tout simplement! Ça retourne ±1 pour sign(0), pas infini.
Pour true/false, c'est parce que (x=2)/2 est totalement autre chose que when(x=2,1,0)/2! Le premier donne x/2=1 tout simplement!