onilink_ Utilisateur moyen

Nombre de messages: 63 Localisation: Le vigan (Pres de Ganges) Projet Actuel: Convertisseur : Projet .gm6 >> Projet C++ SDL + FMOD Avancement:
 | Sujet: Source des fonctions trigonométriques Cos, Sin et Tan Sam 7 Nov - 16:12 | |
| Attention la lecture de cette page peut causer des maux de tête  . Ne s'adresse qu'aux personnes curieuses qui veulent voir la source de sin, cos et tan. N'utilisez pas cette fonction dans un jeu elle est juste la pour vous montrer le la complexité qui se cache derrière sin et cos. Cos : | Code: | var x_,r,m,s;
x_= abs(argument0) r = 1 m = 10 s = 1
x_ = x_ mod (2*pi)
if (x_ == pi) { return-1; exit; } if (x_ == 0) { return 1; exit; }
if ( x_== floor( (1*pi/2)*power(10,8) )/power(10,8) ) { return 0; exit; } if ( x_== floor( (3*pi/2)*power(10,8) )/power(10,8) ) { return 0; exit; }
if (x_ > pi) { x_ = pi-x_ s = -1 }
for(n=1;n<=m;n+=1) { r += ( power(-1,n)*power(x_,2*n) ) / s_factoriel(2*n) }
return r*s
|
Sin
| Code: | var x_,r,m,s;
x_= argument0 r = 0 m = 10 s = 1
x_ = x_ mod (2*pi)
if (x_==pi) { return 0; exit; } if (x_== 0) { return 0; exit; }
if ( x_== floor( (1*pi/2)*power(10,8) )/power(10,8) ) { return 1; exit; } if ( x_== floor( (3*pi/2)*power(10,8) )/power(10,8) ) { return-1; exit; }
if (x_ > pi) { x_ = pi-x_ }
for(n=0;n<=m;n+=1) { r += ( power(-1,n)*power(x_,2*n+1) ) / s_factoriel(2*n+1) }
return r
|
s_factoriel
| Code: | var x_,r;
x_= argument0 r = 1
for(i=1 ; i<=x_ ; i+=1) { r*=i }
return r
|
Tan
| Code: | return Sin(argument0)/Cos(argument0)
|
Voila en faite je me suis emmerdé a reprogrammer les fonctions trigonométriques donc je voulais partager mon travail avec vous.  |
|
M@d_Doc - Modérateur -

Nombre de messages: 5054 Localisation: 47°44'8.04 Projet Actuel: LightED (fini) Avancement:
 | Sujet: Re: Source des fonctions trigonométriques Cos, Sin et Tan Sam 7 Nov - 19:25 | |
| J'ai pas regardé en détail... c'est une approximation par dichotomie? En tout cas, bien joué, c'est intéressant, je vais le refaire en asm, tiens  _________________  |
|
onilink_ Utilisateur moyen

Nombre de messages: 63 Localisation: Le vigan (Pres de Ganges) Projet Actuel: Convertisseur : Projet .gm6 >> Projet C++ SDL + FMOD Avancement:
 | Sujet: Re: Source des fonctions trigonométriques Cos, Sin et Tan Sam 7 Nov - 20:09 | |
| En fait j'ai utilisé les formules de wikipédia ^^. Google est notre ami  ! cos(x) = x - (x^2)/2! + (x^4)/4! + ... + (-1)^k * x^2k/2k! sin(x) = x - (x^3)/3! + (x^5)/5! + ... + (-1)^k * x^(2k+1)/(2k+1)! Voila fallait le traduire en GML  |
|