我认为很快。 Cocos2d和xcode中的2d问题。
我有
CGPoint currPoint;
float lineLength;
float angle;
现在,我需要在角度Degrees处找到lineLength远离currPoint的点。
试图搜索,但我找到的答案并不是我想要的。非常感谢任何人指出(我假设)我忽略的非常简单的数学。
答案 0 :(得分: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度。如果是这样,只需从角度添加/减去该数量。
答案 1 :(得分: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;