2013-11-04 55 views
0

我有一個小小的遊戲,我用javascript和Raphael.js(我很新),我基本上只是一個圓形的圓形,一個矩形旋轉。這工作得很好,很棒! 代碼變換是:Raphael.js在變換後得到矩形的座標

this.self = this.self.animate({ transform : this.transform }, 250); 

不過,我需要找到後,我製作動畫的矩形COORDS,但getBBox()不斷得到同樣的COORDS。有沒有人有什麼建議?一個視覺圖片的變換將是: enter image description here

所以我需要轉換後的炮塔座標。我需要找到炮塔前方,所以我知道子彈需要從哪裏出來!任何建議將被認真考慮!

回答

1

enter image description here

通過使用旋轉數,將幫助你找到座標。可以說旋轉角度是q = 45度。

這意味着,通過一個罪(Q)y改變和變化x通過 - 一個餘弦(Q)。

編輯

注重於所有情況。在這種情況下,兩個座標都減少了,但如果你轉向東南方向,那麼y增加,並且x減少。或者如果西北部:yx減少。

+0

所以公式是y = a * sin(a)和x = aa(cos(a))? – samuraiseoul

+0

差不多:對於這種情況,y = y - a * sin(45),x是正確的 – Brian

+0

啊y - = a * sin(a)? – samuraiseoul

0

變換隻是一種視覺效果,它不會影響座標。 你知道炮塔的寬度,你知道旋轉角度。 使用sin & cos來計算新的座標。數學公式((i * Math.PI)/ 180)* R + x; Y = Math.sin((i * Math.PI)/ 180)* R + y;

我 - 角 的R - 炮塔 x和y的寬度 - 炮塔偏移

+0

我知道三角形我擁有所有的一面。兩邊是圓的半徑,另一邊是矩形的寬度。但我不擅長數學,我不知道如何獲得新的座標。 ( – samuraiseoul