2011-10-19 45 views
1

如果您理解了目標c,那麼只需閱讀最後2個句子。其餘的這只是總結了最後2個學位:查找移動物體某一點的x和y座標


所以我有兩個精靈,下臂和上臂。我將定位點設置爲ccp(0.5f,0.0f)因此,讓我們說下面的破折號表示下臂,定位點是括號中的破折號:( - )------。所以對象圍繞這個點旋轉(目前CGPoint是ccp(100,55))。

我需要的是,如果下臂圍繞圓括號旋轉:( - )-----○圓代表我想要的點。我基本上是連接兩隻手臂,並試圖使運動看起來很漂亮......兩隻手臂長17個像素(這意味着如果下臂向上指向,CGPoint的圓圈是ccp(100,72),並且如果手臂指向一直向下,圓圈將是ccp(100,38)

將使用什麼等式以便我可以將上臂的位置設置爲等於下臂的旋轉CGPoint的位置,表示爲第二段中的圓圈這個問題的。像...... _ ,/在_表示下臂,逗號代表我想這一點,和/代表上臂。

所以下和上臂= 17個像素長,主播poi兩者的nt是(0.5f,0.0f),我如何找到與下臂錨點相反的點。

回答

4

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

+0

角度總是在變化......你知道一個函數或什麼可以找到精靈的角度嗎? – Gabe

+0

我不知道,是可可還是Cocos2D?你如何改變角度?這是一種轉變嗎?如果是這種情況,我可以解釋如何直接從變換計算點。另一個概念上更復雜但更簡單的代碼是將上臂的變換定義爲與下臂變換的級聯。 – morningstar

+0

好吧,我不知道如何「上臂轉換爲下臂轉換」,但它在cocos2d中,角度將從-75度改變到最多75-80度......但它會一直在變化 – Gabe

1

你需要找到的旋轉角度是什麼。我並不熟悉目標c,但如果您使用的是旋轉函數,則最有可能在某處可以引用角度分量。

從那裏您可以使用三角函數來查找x和y變化的組成部分。

當x它是:(錨X)+(臂的長度)*餘弦(旋轉角度)

和y的這將是:(錨Y)+(臂的長度)*正弦(旋轉角度)

此外,請確保您知道角度是弧度還是度數,您可能必須根據正弦/餘弦函數進行轉換。