Cocos2d iphone cocos2d计算给定起点、角度和距离的目标点

Cocos2d iphone cocos2d计算给定起点、角度和距离的目标点,cocos2d-iphone,Cocos2d Iphone,我想快一点。Cocos2d和xcode中的2d问题 我有 CGPoint currPoint; float lineLength; float angle; 现在,我需要找到一个点,该点距离当前点的直线长度,角度为度 试图搜索,但我找到的答案并不完全是我想要的。如果有人能指出(我想)我忽略的非常简单的数学,我将不胜感激。从我的头顶: CGPoint endPoint; endPoint.x = sinf(CC_DEGREES_TO_RADIANS(angle)) * lineLength; e

我想快一点。Cocos2d和xcode中的2d问题

我有

CGPoint currPoint;
float lineLength;
float angle;
现在,我需要找到一个点,该点距离当前点的直线长度,角度为度


试图搜索,但我找到的答案并不完全是我想要的。如果有人能指出(我想)我忽略的非常简单的数学,我将不胜感激。

从我的头顶:

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;

谢谢,这正是我想要的。@LearnCos2D:对我来说,当角度为负时,它会产生奇怪的效果。更正:在我的情况下,我不应该做ccpAdd。没有一切都好。我不明白为什么。