1
임의의 속도로 타겟을 생성하는 임의의 위치에서 생성 된 물리 본문을 대상으로 만들려고합니다. 나는 수집 약간 Box2D의에서 실행하는 다람쥐를 사용하던 웹에서이 코드를 수정Box2d 궤도 계산
문제는 내가 내 프로그램이 적용하는 방법을 몰라+ (CGPoint) calculateShotForTarget:(CGPoint)target from:(CGPoint) launchPos with:(float) velocity
{
float xp = target.x - launchPos.x;
float y = target.y - launchPos.y;
float g = 20;
float v = velocity;
float angle1, angle2;
float tmp = pow(v, 4) - g * (g * pow(xp, 2) + 2 * y * pow(v, 2));
if(tmp < 0){
NSLog(@"No Firing Solution");
}else{
angle1 = atan2(pow(v, 2) + sqrt(tmp), g * xp);
angle2 = atan2(pow(v, 2) - sqrt(tmp), g * xp);
}
CGPoint direction = CGPointMake(cosf(angle1),sinf(angle1));
CGPoint force = CGPointMake(direction.x * v, direction.y * v);
NSLog(@"force = %@", NSStringFromCGPoint(force));
NSLog(@"direction = %@", NSStringFromCGPoint(direction));
return force;
}
, 나는 Y -20의 중력이 그러나 g를 20으로하고 v를 10으로 낮추면 "No Firing Solution"만 남게됩니다.
내가 뭘 잘못하고 있니?
당신이 설명해 주 시겠어요을? –