如何获取对象中特定X位置的度数?

时间:2015-01-28 09:33:32

标签: ios objective-c sprite-kit angle orbital-mechanics

这是我在方块上围绕圆圈移动方块的方法:

-(CGPoint)circularMovement:(float)degrees radius:(CGFloat)radius{        
        float x = (planet.position.x + planet.radius) *cos(degrees);
        float y = (planet.position.y + planet.radius) *sin(degrees);

        CGPoint posicion = CGPointMake(x, y);
        return posicion;
}

正如你所看到的,我得到了我的卫星的x和y位置,并用度数++调用了这个方法我在行星周围得到了一个圆周运动。

但是我对这个运动系统的问题是我需要satelite.position.x+satelite.size.width/2度来检测与另一个运动相同的运动系统碰撞的碰撞。

有人知道如何获得这个值吗?

1 个答案:

答案 0 :(得分:1)

做同样的计算,但是倒退。

在您的示例中,您知道: planet.position planet.radius ,您必须找到 x CGPoint的em>和 y

现在你知道了: planet.position planet.radius CGPoint你需要找到学位。

从你的公式:

float x = (planet.position.x + planet.radius) *cos(degrees);

你可以找到你的学位:

cos(degrees) = x / (planet.position.x + planet.radius);

例如:

cos(x) = 1 / 2;

然后

x = acos(1/2);
x = 60 degrees or Pi/3 rads