Objective c 使用物理、CG点、向量的随机运动,在物理/数学方面有点混乱
我设法让花栗鼠物理和一些其他东西在我的屏幕上放一个球,我可以用一些按钮/加速计来影响重力。哎呀 接下来,我想关闭重力,模拟一个自上而下的视图,球在屏幕上自由移动。我可以使用Objective c 使用物理、CG点、向量的随机运动,在物理/数学方面有点混乱,objective-c,xcode,physics,vector-graphics,chipmunk,Objective C,Xcode,Physics,Vector Graphics,Chipmunk,我设法让花栗鼠物理和一些其他东西在我的屏幕上放一个球,我可以用一些按钮/加速计来影响重力。哎呀 接下来,我想关闭重力,模拟一个自上而下的视图,球在屏幕上自由移动。我可以使用body->f=cpv(dx,dy)对球施加力,但我对物理和数学还不太了解,所以我试图理解我给球施加的两个值是如何引起运动的 我知道正值会使它向右或向下移动,负值会使它向左或向上移动,但这就是我目前所理解的全部 如果我想,比如说,选择一个随机的罗盘方位(0-359度)并在那个方位上移动它,那么这个值如何转换成向量 我创建了此方
body->f=cpv(dx,dy)
对球施加力,但我对物理和数学还不太了解,所以我试图理解我给球施加的两个值是如何引起运动的
我知道正值会使它向右或向下移动,负值会使它向左或向上移动,但这就是我目前所理解的全部
如果我想,比如说,选择一个随机的罗盘方位(0-359度)并在那个方位上移动它,那么这个值如何转换成向量
我创建了此方法,但它没有按预期工作,我不确定我做错了什么:
- (CGPoint) getVectorFromAngle: (float) angle AndMagnitude: (float) magnitude
{
float x = magnitude * cos(angle);
float y = magnitude * sin(angle);
CGPoint point = CGPointMake(x, y);
NSLog(@"Made a CGPoint of X: %f and Y: %f.", point.x, point.y);
return point;
}
如果我给它一个角度45
和一个幅值10
,它会产生X,分别为5.253220和8.509035。然而,发现的计算器显示,它应该将X和Y创建为7.0711
我这里有什么错?正弦波和余弦波以弧度为角度,将角度乘以π/180。还需要指出的是,花栗鼠已经包含了一个功能,可以完全满足你的需要
cpvmult(cpvforangle(radians), magnitude)
也许这有帮助:。这里的转换器工作正常,完全符合我的需要,但它没有解释它是如何工作的!有什么想法吗?嗯,这是基本的三角学
(x,y)
是笛卡尔坐标系中的矢量,“幅值+角度”描述极坐标系中的矢量。维基百科的那篇文章或任何关于三角学的书/文章中都描述了这种转换