Einzelnen Beitrag anzeigen

Benutzerbild von braingrenade
braingrenade

Registriert seit: 30. Okt 2002
Ort: Neufra
274 Beiträge
 
Delphi 6 Personal
 
#21

Re: Zusammenstoß von Kugeln

  Alt 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.
Angehängte Grafiken
Dateityp: bmp vector_170.bmp (31,1 KB, 26x aufgerufen)
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
  Mit Zitat antworten Zitat