2011-10-19 11 views
1

目的をよく理解していれば、最後の2つの文章を読むだけです。だから私は2つのスプライト、ロアアームとアッパーアームを持って移動するオブジェクトの特定の点のx座標とy座標を見つける


:これの残りの部分は、ちょうど最後の2 sentancesをまとめました。私はアンカーポイントをccp(0.5f,0.0f)に設定しました。したがって、以下のダッシュが下アームを表し、アンカーポイントがかっこ内のダッシュです。( - )------。オブジェクトはこの点を中心に回転しています(現時点でCGPointはccp(100,55)です)。

私が必要とするのは、下腕が括弧内のダッシュを中心に回転している場合です。( - )----- o円は私が望む点を表します。私は基本的に2つの腕を接続し、動きを見栄えようとしています...両腕の長さは17ピクセルです(つまり、下腕がまっすぐ上を向いている場合、円のCGPointはccp(100,72)です。 ccp(100,38)

上腕の位置を下アームの回転するCGPointの位置と同じにするために使用する式は、第2段落の円で表されます、/は下アームを表し、コンマは必要なポイントを表し、/は上アームを表します。

下アームと上アーム= 17ピクセルなので、アンカーポイ両方の場合のntは(0.5f、0.0f)です。下腕のアンカーポイントの反対側の点を見つけるにはどうすればいいですか?

答えて

4

X = 100の+ 17の* COS(θ)
Y = 55 + 17 *罪(θ)

+0

角度は常に変化しています...スプライトの角度を見つける関数などを知っていますか? – Gabe

+0

私は知らない、それはココアかココス2Dですか?どのように角度を変えていますか?それは変容ですか?その場合、変換から直接ポイントを計算する方法を説明することができます。別の概念的に複雑で簡単なコードのもう1つは、上腕の変換を下腕の変換との連結として定義することです。 – morningstar

+0

さて、 "上腕を下腕の変形との連結として変換する"ということは考えられませんが、その角度は-75度から最大75-80度に変わります。いつも変わるだろう – Gabe

1

あなたは回転の角度が何であるかを見つける必要があります。私は客観的なCに精通していませんが、回転機能を使用している場合は、参照できる角度コンポーネントがありそうです。

そこから、xとyの変化の成分を見つけるために三角法を使うことができます。 *(アンカーX)+(腕の長さ)、余弦(回転角度)

およびYのために、それは次のようになります:それはなりxに対する

(アンカーY)+(腕の長さ)*サイン(回転角度)

また、角度がラジアンか度であるかどうかを確認してください。正弦/余弦関数に基づいて変換する必要があります。