1

Comment faire pour trouver les coordonnées d'un point mobile ayant une direction qui aille de 0° à 359° (de 1 en 1) ????

Par exemple, comment faire pour des balles pouvant aller dans n'importe quelle direction ?
J'ai réussi en utilisant les cosinus et les sinus, mais je trouve ça un peu lent !!!
Vive CF !!
Vive la Time To Team !!!

2

Utilise des tables de cosinus/sinus.

3

des tables ??

Moi, j'ai fais cos(de machin chose) et sin(gnagnagna) !!!

Mais le programme est lent !!!
Vive CF !!
Vive la Time To Team !!!

4

des tables :
unsigned short cos_t[360] = {1*500,0.9*500 ...
cos(angle) * Rayon ... };

5

A Ouais !!! Mais c'est barbare !!!
Il faut en mettre 360 !!!!!

Vive CF !!
Vive la Time To Team !!!

6

Ce n'est absolument pas barbare !
Tu peux meme le faire calculer par ta calc :

short *cos_t;

bool make_cos(short rayon)
{
int i;
cos_t = malloc(sizeof(short) * 360);
if (!cos_t) return false;
for (i = 0 ; i < 360 ; i ++)
cos_t[i] = cos(i) * rayon;
}

7

Attends, là, je pige pas...
c'est quoi la variable "rayon"
Vive CF !!
Vive la Time To Team !!!

8

Ben c'est un rayon smile
Tu prends le cercle et tu as le rayon.
Parce que sinon, tes valeurs sont nulles FLOOR(cos(i)) = en general 0

9

AHHH !!!!!! Compris... Enfin, je crois.
Vive CF !!
Vive la Time To Team !!!

10

Mais le PB c'est que la valeur entrée dans le cos est à virgule !!

exemple : cos(0.6153)

Et ça, tu le calcules comment ? Tu arrondis à 1 ???
Vive CF !!
Vive la Time To Team !!!

11

A oui. Ben tu convertis en radian :
cos_t[i] = cos(i*2.0*PI/360.0) * rayon;

12

aRf, le radian, y'a que ca de vrai smile voir mm le stéradian mais bon grin

sinon, tu utilises une pseudo table de sin ... tu fais qq valeur approchées etc.. ca depend de te precision ...

pis sinon, tu utilise les DSE de sinus et cos pr faire des calculs rapides approchés ...

13

ca m'interresse ton truc PpHd, faut que je te parle !

14

J'ai une autre idée quui n'utilise pas les cos/sin, j'ai fait ça en basic et ça marche... je me rappelle plus de la manière dont je m'y suis prit je vais essayer de retrouver ça
Dark Pal Rulez...

15

DSE = DL dans ce cas, parce que tu ne vas calculer à l'infini, donc c'est valable que près de 0...
Site : http://www.phareaway.com/
Membre du groupe Phare Away et webmaster du site

16

Si on prend un ordre de polynôme suffisant, on peut bien avoir une précision acceptable.

On n'a besoin que de [0,pi/2]. Or, si on prend le DL d'ordre 3 en pi/4, la différence entre les 2 courbes n'est déjà plus très visible. L'erreur la plus grande? En 0, l'erreur est d'environ -0,009247. En pi/2, l'erreur est d'environ -0,012718. Avec le DL d'ordre 4 en pi/4, l'erreur n'est plus que d'environ 0,001963 en 0 et d'environ -0,001507 en pi/2. Avec l'ordre 5, on obtient 0,000202 et 0,00025. Avec l'ordre 6, on obtient -0,000028 et 0,000023 - moins de 2 unités en virgule fixe 16 bits + 16 bits. Avec l'ordre 7, on obtient -0,0000023 et -0,0000027 - ce qui donne la précision maximale en virgule fixe 16 bits + 16 bits.

La formule?
taylor(sin(x),x,pi/4,7)
-2^(½)(4x-pi)^7/165150720-2^(½)(4x-pi)^6/5898240+2^(½)(4x-pi)^5/245760+2^(½)(4x-pi)^4/12288-2^(½)(4x-pi)³/768-2^(½)(4x-pi)²/64+2^(½)(4x-pi)/8+2^(½)/2
En simplifiant:
2^(-½)[-(4x-pi)^7/82575360-(4x-pi)^6/2949120+(4x-pi)^5/122880+(4x-pi)^4/6144-(4x-pi)³/384-(4x-pi)²/32+(4x-pi)/4+1]
[edit]Edité par Kevin Kofler le 26-10-2001 à 20:47:28[/edit]
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é

17

je me disait aussi... la première est vraiment longue, on peu pas la simplifier grin ? Là, je vais m'l'apprendre par coeur... tongue
En HIBERNATION !
C'est une façon pour moi de dire merde à la société :D

MERCI sBibi ENCORE ET ENCORE POUR ...

From Grenoble.

18

3 termes de developpement asympthotique seront suffisant alors ..