我认为快一个。Cocos2d 和 xcode 中的二维问题。
我有
CGPoint currPoint;
float lineLength;
float angle;
现在,我需要找到距离 currPoint 的 lineLength 的点,角度为 Degrees。
试图搜索,但我找到的答案并不是我想要的。希望有人指出我忽略的(我假设)非常简单的数学。
我认为快一个。Cocos2d 和 xcode 中的二维问题。
我有
CGPoint currPoint;
float lineLength;
float angle;
现在,我需要找到距离 currPoint 的 lineLength 的点,角度为 Degrees。
试图搜索,但我找到的答案并不是我想要的。希望有人指出我忽略的(我假设)非常简单的数学。
从我的头顶:
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 度。如果是这样,只需从角度添加/减去该数量。
我浪费了很多时间试图解决这个问题。最后,由于接受了答案并找到了计算角度的正确方法,我终于解决了这个问题。这是我的解决方案:
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;