Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //degree
- var degree:Number = 0;
- //acceleration
- var ax:Number;
- var ay:Number;
- //time step
- var dt:Number = .00001;
- //initial position
- var yo:Number=(red.y-blue.y);
- var xo:Number=(blue.x-red.x);
- //current position
- var xi:Number = 0;
- var yi:Number = 0;
- //initial velocity
- var vxo:Number = 0;
- var vyo:Number = -1;
- //current velocity
- var vxi:Number = 0;
- var vyi:Number = 0;
- //trig a
- var a:Number = 0;
- //trig b
- var b:Number = 0;
- //radius (hypotenous)
- var r:Number = 0;
- //mass
- var bluemass:Number = 1000;
- var redmass:Number = 100000000;
- //radian of angle
- var radian:Number = 0;
- //gravity
- var g:Number = 0;
- var grav:Number = Math.pow(1,-8);
- //blue pos
- var xpos:Number = blue.x;
- var ypos:Number = blue.y;
- //red pos
- var xpossave:Number=red.x;
- var ypossave:Number=red.y;
- //rk4
- var kx1:Number = 0;
- var kvx1:Number = 0;
- var kx2:Number = 0;
- var kvx2:Number = 0;
- var kx3:Number = 0;
- var kvx3:Number = 0;
- var kx4:Number = 0;
- var kvx4:Number = 0;
- var ky1:Number = 0;
- var kvy1:Number = 0;
- var ky2:Number = 0;
- var kvy2:Number = 0;
- var ky3:Number = 0;
- var kvy3:Number = 0;
- var ky4:Number = 0;
- var kvy4:Number = 0;
- addEventListener(Event.ENTER_FRAME,world); function world(e:Event):void {
- a = ypos-ypossave;
- b = xpossave-xpos;
- if (b >= 0 && a >= 0)
- {
- kx1 = vxo;
- ky1 = vyo;
- r = Math.sqrt(Math.pow(a,2) + Math.pow(b,2));
- radian=(Math.asin(a/r));
- g=(grav)*(bluemass*redmass)/(Math.pow(r,2));;
- kvx1=-((g)*Math.cos(radian))/bluemass;
- kvy1=((g)*Math.sin(radian))/bluemass;
- kx2=vxo+(kvx1*(dt/2));
- ky2=vyo+(kvy1*(dt/2));
- a = (a+ky2);
- b = (b+kx2);
- r = Math.sqrt(Math.pow(a,2) + Math.pow(b,2));
- radian=(Math.asin(a/r));
- g=(grav)*(bluemass*redmass)/(Math.pow(r,2));
- kvx2=-((g)*Math.cos(radian))/bluemass;
- kvy2=((g)*Math.sin(radian))/bluemass;
- kx3=vxo+(kvx2*(dt/2));
- ky3=vyo+(kvy2*(dt/2));
- a = (a+ky3);
- b = (b+kx3);
- r = Math.sqrt(Math.pow(a,2) + Math.pow(b,2));
- radian=(Math.asin(a/r));
- g=(grav)*(bluemass*redmass)/(Math.pow(r,2));
- kvx3=-((g)*Math.cos(radian))/bluemass;
- kvy3=((g)*Math.sin(radian))/bluemass;
- kx4=vxo+(kvx3*(dt));
- ky4=vyo+(kvy3*(dt));
- a = (a+ky4);
- b = (b+kx4);
- r = Math.sqrt(Math.pow(a,2) + Math.pow(b,2));
- radian=(Math.asin(a/r));
- g=(grav)*(bluemass*redmass)/(Math.pow(r,2));
- kvx4=-((g)*Math.cos(radian))/bluemass;
- kvy4=((g)*Math.sin(radian))/bluemass;
- }
- xi=xo+(dt/6)*(kx1+2*(kx2)+2*(kx3)+kx4);
- vxi=vxo+(dt/6)*(kvx1+2*(kvx2)+2*(kvx3)+kvx4);
- yi=yo+(dt/6)*(ky1+2*(ky2)+2*(ky3)+ky4);
- vyi=vyo+(dt/6)*(kvy1+2*(kvy2)+2*(kvy3)+kvy4);
- vxo = vxi;
- vyo = vyi;
- xpos = xi;
- ypos = yi;
- yo=(yi);
- xo=(xi);
- }
- addEventListener(Event.ENTER_FRAME,drawing); function drawing(e:Event):void {
- blue.x = xpos+xpossave;
- blue.y = ypossave-ypos;
- }
Advertisement
Add Comment
Please, Sign In to add comment