Registriert seit: 30. Okt 2002
Ort: Neufra
274 Beiträge
Delphi 6 Personal
|
Re: Zusammenstoß von Kugeln
29. Jun 2004, 18:47
So , nu hab ich mir ne Lösung ausgedacht (siehe anhang) die aber nicht funktionert
In code Hab ich das so realisiert :
Delphi-Quellcode:
var
i,i2,i3 :integer;
vbuf,v1,v2 : T2dvector;
alpha,beta,gamma,lengthv : real;
...
vbuf := makevector((chspr[i].x-chspr[i2].x),(chspr[i].y-chspr[i2].y) ) ;
//chspr ist ein array meiner Chaossprite Klasse, x und y ist die Position des Sprites vom Typ
//real, v ist der Vektor des Sprites, v.x und v.y sind auch real
alpha := dotproduct(chspr[i].v,vbuf);
beta := arctan(chspr[i].v.x/chspr[i].v.y);
gamma := alpha - beta;
lengthv := cos(alpha)*(sqrt( sqr(chspr[i].x) + sqr(chspr[i].y)));
v1 := makevector((lengthv*cos(gamma)),(lengthv*sin(gamma)));
alpha := dotproduct(chspr[i2].v,vbuf);
beta := arctan(chspr[i2].v.x/chspr[i2].v.y);
gamma := alpha - beta;
lengthv := cos(alpha)*(sqrt( sqr(chspr[i2].x) + sqr(chspr[i2].y)));
v2 := makevector((lengthv*cos(gamma)),(lengthv*sin(gamma)));
chspr[i].v := addvectors(chspr[i].v,v1);
chspr[i2].v := addvectors(chspr[i2].v,v2);
Ich schätze mal der Fehler liegt irgenwo bei sinus oder cosinus.
Let the sun beat down upon my face
Stars fill my dream
I am a traveller of both time and space
To be where I have been ________________ Such A Surge
|
|
Zitat
|