1

Ce que je voudrais savoir ce n'est pas comment faire bouger un pixel (ou une "balle"): ça je sais le faire; mais c'est le rebond:
par exemple, si la "balle" arrive sur un bord de l'écran avec un angle de 30° comment fait-on pour la faire repartir correctement (en fait comme si on voulais faire un jeu de billard).

Pou Seb: je connais flib t'inquiètes pas ça va pas m'embrouiller.

Ciao.

2

Euh... je suis pas sur, mais je crois que ça fait 60° (90-30).
avatarMembre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

3

tu n'a pas de base en trigo?
ils faut que tu fasse le complement pour arriver à 180°.
pense à prévoir un point de départ différent à chaque launch.

4

J'ai dus m'endormir pendant les cours de trigo (ou alors c'était BomberMaze grin)
avatarMembre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

5

Bah de toute façon i=r

6

pour l'angle de rebond, c pas le meme que celui d'arrivée ?? (je crois qu'on a vu un exo sur les trnasformations avec un billard, je me rapelle pus trop)

7

confusconfusconfus

8

bah tu prend la perpendiculaire au mur au point de contact et tu fait le symetrique de l'angle.
si la balle arrive avec un angle de 30°, elle repartira avec un angle de 30° soit 60° au total.
c simple

9

chickensaver_john> en fait, je pensait pas avoir donner la bonne réponse.
Ce qui est possible aussi, c'est d'utiliser des vecteurs au lieu d'angles, et d'inverser ces vecteur en x et/ou en y suivant le ou les rebords touchés.
avatarMembre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

10

i=r
v'=v
avatarMes 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

mais encore kévin,parce que là;tu fait pas trop avancer le shmilblick!

12

Si on se situe dans le plan de l'écran, le rebond sur un plan devient un rebond sur un segment, comme par exemple un des 4 bords de l'ecran. (Si tu veux rester dans l'espace: un bord de l'écran n'est que la coupe d'un plan perpendiculaire au plan de l'écran et contenant ce bord de l'écran.)

Maintenant on applique:
i=r: angle d'incidence (par rapport à la normale au plan de rebond, c'est à dire la perpendiculaire au "segment de rebond", passant par le point d'incidence) = angle de rebond (par rapport à cette même normale; pour une onde on dirait "angle de réflexion", mais pour un objet, "angle de rebond" est plus adapté)
v'=v: la vitesse après le rebond est la même que la vitesse avant le rebond (sauf si on prend en considération les frottements lors du choc)

En programmation, il te sera plus facile de travailler en coordonnées cartésiennes qu'en normes et angles, donc si tu as ton vecteur vitesse v=[vx,vy] avant le rebond, après le rebond:
* pour un rebond sur les bords "gauche" ou "droit" (x=-1 et x=160), v'=[-vx,vy]
* pour un rebond sur les bords "haut" et "bas" (y=-1 et y=128), v'=[vx,-vy]
Ceci revient au même que les 2 règles précédentes (mais on utilise le fait que les bords ont pour équation soit x=k, soit y=k).
[edit]Edité par Kevin Kofler le 10-09-2001 à 01:08:52[/edit]
avatarMes 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

Si c'est exactement au coin, on a au même temps les 2 rebonds.

La manière la plus simple de traîter ce cas est encore en coordonnées cartésiennes (en présupposant des équations de type x=k et y=k pour les bords de l'écran, ce qui est le cas sur un écran de calculatrice):
v'=[-vx,-vy]
avatarMes 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é

14

"Inverser les coordonnées des vecteurs" (d'ailleurs, il faudrait dire "prendre l'opposé", pas "inverser" qui voudrait dire "prendre l'inverse"), c'est bien ce que je fais ici, non? J'ai juste expliqué en plus de détails, et aussi d'où ça vient et dans quelles préconditions ça marche.
D'ailleurs, pour des bords non-perpendiculaires, c'est bien plus compliqué pour les coins car la composée des 2 réflexions sera différente selon l'ordre (il faudra travailler avec les forces plutôt qu'avec les règles pour un bord seul comme i=r et v'=v dans le cas où les 2 bords sont rencontrés au même moment).
[edit]Edité par Kevin Kofler le 10-09-2001 à 01:20:28[/edit]
avatarMes 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

Exactement pas besoin de trigo
Ta balle se déplace en lui ajoutant un vecteur.
Si elle rencontre un bord droit qui un parallele à l'axe des x ou des y (horz/vert), c'est en général le cas, tu n'as qu'a prendre l'opposé d'une des coordonées du vecteur.

On fait avancer la balle par: x+xballe->xballe
y+yballe->yballe

Ex: rencontre une ligne horizontale
Si yballe<(ou >) ylignhorz
alors -y -> y
La balle rebondi comme dans la réalité!

Par contre si ton "bord" n'est horizontale ou verticale ca se complique...

16

Il faut utiliser des angles dans ce cas là.
angle de la balle moins angle du bord (le tout par rapport à un repère orthogonal), ajouterais-je même.
(C'est ça Kevin ?)
avatarMembre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

17

non il faut utiliser des vecteur pour la balle...
pour les rebonds, tu prend le cos et le sin de l'angle du mur
ce sera plus rapide et plus simple que d'utiliser des coordonnes polaires pour la bale (angle+vitesse)
avatar

18

Ah ! ça fonctionne aussi avec les cos et les sin ?
J'étais pas sur.
avatarMembre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

19

En fait ce que j'ai du mal à manipuler ce n'est le problème mathématique du prog mais la programmation elle-même c'est à dire je ne sais pas quelles commandes il faut utiliser, si il faut utiliser des listes, des matrices ou autre chose...(pour faire une balle qui rebondit dans tous les sens).
Si quelqu'un peut me mettre sur la voie...merci

20

smiletonguewinkgrin

21

Je crois pas qu'il y ait besoin de fonctions spécifiques, puisqu'il s'agit de calcul sur des variables.
En ce qui concerne le type des variables, c'est pas important, c'est suivant ton envies (personnellement, je te conseille des listes).
avatarMembre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

22

wink