1

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, ...)?

2

* 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.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

3

erreur de ma part! -gt²/2 est bien dans y et pas dans x!

4

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.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

5

eu..langle incident tu l'obtient bien comme ca
i=arcos((x-xo)/(v*t) nan?

avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406

6

Ça m'a l'air correct.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

7

bin 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?
avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406

8

t'as pas un coef de frottement ?

9

??
bin suffit de multiplier v par v*k
avec 0<k<1
avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406

10

KWT-ArpiK
a écrit : 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?

Non, c'est le signe de y-y0 qu'il faut gérer.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

11

...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)
???
avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406

12

Non, tu dois trouver ça en fonction de x et y.
i=arccos((x-xo)/(v*t))*sign(y-y0).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

13

euh...
c koi en C la commande sign??
avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406

14

(y-y0>=0)?1:-1
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

15

ok merci j'avais trouver tout seul

c'etait tellement difficile d'ailleur....
avatar
Plus t'avance moins vite
Moins t'avance plus vite...

forums/406

16

" - 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?

17

nan ... tu aurais fait comment en asm ? testé le MSB ?

18

tst.w d0
bpl.s \apres
neg.w d1
\apres
Mais il est possible que TIGCC fasse lui-même certaines optimisations. Au moins pour éviter une multiplication.

19

Tu peux faire ça en C aussi:
if (y-y0<0) result=-result;
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

20

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)
avatar
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.

21

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!
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité