nameless
nameless

Reputation: 809

reaching particular co-ordinate in projectile motion?

As I wanted to animate an image in projectile motion, My code is as follows, but it did not reach the target and give projectile animation, any help please?

-(void)timeLine
{

dTime += 0.1;


.................


double s_x =   inVel * cos(angle1)  ; // the X speed
double s_y =   inVel * sin(angle1) ;  // the Y speed


NSLog(@"sx = %i",s_x);

NSLog(@"sy = %i",s_y);


x =   oX + (s_x * dTime);
y =   oY + ( ( s_y * dTime) - (0.5 * 9.8 * dTime * dTime));

NSLog(@"x = %i",x);

NSLog(@"y = %i",y);

imageViewForAnimation.x += x;
imageViewForAnimation.y -= y;
}

Upvotes: 3

Views: 213

Answers (1)

Justin Peel
Justin Peel

Reputation: 47072

imageViewForAnimation.x += x;
imageViewForAnimation.y -= y;

These lines don't seem right to me. You are calculating the actual x and y each time, not the difference moved since the last time. I'm also uncertain why one was being added and one was being subtracted, but that's beside the point. Basically, try changing the lines to

imageViewForAnimation.x = x;
imageViewForAnimation.y = y;

Also, you're doing some calculations over and over which only need to be done once. v_x == s_x (or it should within floating point error) as well as v_y == s_y. You only need to calculate v_x and V_y once beforehand rather than calculating them every time you update the coordinates.

Upvotes: 1

Related Questions