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)
是笛卡尔坐标系中的矢量,“幅值+角度”描述极坐标系中的矢量。维基百科的那篇文章或任何关于三角学的书/文章中都描述了这种转换