關於flash的anglebounce 有角度回彈實現步驟:
思想就是把問題歸結到我們可以解決的平面回彈,那麼就是將ball的速度(向量)旋轉,以及ball與側面起點的差額(向量)的旋轉,旋轉結束之後就速度發生改變,然後旋轉回來。
1.獲得基本資訊:
//獲得角、正弦和余弦2.旋轉的公式:var angle:number = line.rotation * math.pi / 180;
var cos:number = math.cos(angle);
var sin:number = math.sin(angle);
//獲取小球相對於線條的位置
var x1:number = ball.x - line.x;
var y1:number = ball.y - line.y;
//旋轉座標3.判斷是否碰撞:var x2:number = cos*x1 + sin*y1;
var y2:number = cos*y1 - sin*x1;
//旋轉速度
var vx1:number = cos*ball.vx + sin*ball.vy;
var vy1:number = cos*ball.vy - sin*ball.vx;
if(y2 > -ball.height / 2)4.碰撞完成之後旋轉回來:
//將所有東西旋轉回去這段**寫在event.entr_frame事件的處理器中,就可以完成功能,但是這段**是可以優化的,意思就是說旋轉速度以及旋轉回原位的這個動作,是可以放在判斷是否碰撞的語句中的,可以節約大量的cpu。x1 = cos*x2 - sin*y2;
y1 = cos*y2 + sin*x2;
ball.vx = cos*vx1 - sin*vy1;
ball.vy = cos*vy1 + sin*vx1;
ball.x = line.x + x1;
ball.y = line.y + y1;
python旋轉座標系 四元數旋轉座標系
這個問題和 senderle給出的答案真的幫助了我的乙個專案。答案是最小的,涵蓋了乙個人可能需要執行的大多數四元數計算的核心。對於我自己的專案,我發現為所有操作分別使用函式並在每次需要時逐個匯入它們是很乏味的,所以我實現了乙個物件導向的版本。四元數.py import numpy as np fro...
旋轉座標的計算
已知旋轉中心點 centerx,centery 乙個物體 旋轉的半徑radius和角度angle。使用基本的三角學圍繞中心點放置物體,設定旋轉的角速度vr來控制旋轉角度的增加或減少。計算公式為 angel v ball.x centerx math.cos angle radius ball.y c...
球體旋轉座標推導
球體旋轉的座標公式為 旋轉x軸時,旋轉角度為 x x y ycos zsin z zcos ysin 旋轉y軸時,旋轉角度為 y y x xcos zsin z zcos xsin 旋轉z軸時,旋轉角度為 z z x xcos ysin y ycos xsin 上面的公式是從網上查到的,想要了解那幾...