我正在嘗試將一些位圖相對於中心點進行動畫處理。他們並不都是從那個中心點開始的,但我希望他們能飛出去,就好像來自中心點的力量猛擊了他們,並徑向向外推動它們,使它們完全飛離舞臺。如何使用atan2在線計算第三個點?
所以:我知道中心點以及圍繞它排列的每個位圖的x和y位置。對於每一個我可以從中心畫一條線到那個x,y點。然後,我應該能夠將該線形成的角度與水平線相接,然後在該線上設置更遠的目標點。位圖將被補償到那一點。我相信這就是Math.atan2的目的。
下面是我得到了什麼,因爲我遍歷位圖的陣列(我是一個對象):
var angle:Number = Math.atan2(i.bitmap.y - centerY, i.bitmap.x - centerX) * 180/Math.PI;
var dist:Number = 200; //arbitrary number, just to test
destX = centerX + dist * Math.cos(angle); //destination x
destY = centerY + dist * Math.sin(angle); //destination y
,而不是這些事情徑向滑動出來,他們跳來跳去。
我很難理解atan2以及我做錯了什麼。
感謝,
大衛
只要有可能,您可以使用MatrixTransformer助手類:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/fl/motion/MatrixTransformer.html因爲它的rotateAroundExternalPoint()和rotateAroundInternalPoint()方法 – 2011-05-09 22:27:52