3

我认为快一个。Cocos2d 和 xcode 中的二维问题。

我有

CGPoint currPoint;
float lineLength;
float angle;

现在,我需要找到距离 currPoint 的 lineLength 的点,角度为 Degrees。

试图搜索,但我找到的答案并不是我想要的。希望有人指出我忽略的(我假设)非常简单的数学。

4

2 回答 2

8

从我的头顶:

CGPoint endPoint;
endPoint.x = sinf(CC_DEGREES_TO_RADIANS(angle)) * lineLength;
endPoint.y = cosf(CC_DEGREES_TO_RADIANS(angle)) * lineLength;
endPoint = ccpAdd(currPoint, endPoint);

不确定向量指向的位置,如果它可以旋转 90、180 或 270 度。如果是这样,只需从角度添加/减去该数量。

于 2012-10-24T22:35:12.790 回答
0

我浪费了很多时间试图解决这个问题。最后,由于接受了答案并找到了计算角度的正确方法,我终于解决了这个问题。这是我的解决方案:

float angle = atan2(y2 - touchSprite->getPosition().y, x2 - touchSprite->getPosition().x) * 180 / M_PI;
float radiansAngle = CC_DEGREES_TO_RADIANS(angle);

Vec2 endPoint;
endPoint.y = sinf(radiansAngle) * lineLength + touchSprite->getPosition().y;
endPoint.x = cosf(radiansAngle) * lineLength + touchSprite->getPosition().x;
于 2015-10-07T21:08:36.030 回答