手っ取り早いと思います。Cocos2d と xcode の 2d 問題。
私は持っている
CGPoint currPoint;
float lineLength;
float angle;
ここで、currPoint から角度度で lineLength だけ離れた点を見つける必要があります。
検索しようとしましたが、私が見つけた答えは、私が探していたものとはまったく異なります. 私が見落としていた(私が推測する)非常に単純な数学を指摘してくれる人に感謝します。
手っ取り早いと思います。Cocos2d と xcode の 2d 問題。
私は持っている
CGPoint currPoint;
float lineLength;
float angle;
ここで、currPoint から角度度で lineLength だけ離れた点を見つける必要があります。
検索しようとしましたが、私が見つけた答えは、私が探していたものとはまったく異なります. 私が見落としていた(私が推測する)非常に単純な数学を指摘してくれる人に感謝します。
頭のてっぺんから:
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;