2012-09-27 227 views
-2

可以說我有2個點--A和B.在它們和0,0之間形成一個角度,我想移動點A以便點B移動得太過保留它們之間的角度。矢量角度偏移

現在我將矢量偏移量轉換爲弧度,添加我需要的角度並將其轉換回正常矢量,然後用它將B放在正確的位置。我想知道,如果我可以通過避免跳到角度和回來優化這個過程?由於正弦函數在CPU上的計算成本很高,因此可以提供很大的加速。

+0

要保留哪個角度? A和B在(0,0)處的角度? – 0605002

+0

是的,那是一個 –

+0

然後B的位置不是唯一的。假設原點是O,那麼你可以把B放在光線OB上的任何地方,保持A恆定。對於A的任何位置,B有無限多個可能的位置來保存角度O. – 0605002

回答

0

將兩個載體歸一化爲vec(a)vec(b)。假設矢量之間的角度爲ang(p),請保留一個變換矩陣A=[cosp,-sinp;sinp, cosp](由於它們之間的角度不變,因此不必再次計算,因爲它們之間的角度不變)將旋轉後的單位矢量vec(a1)與矩陣A進行變換以獲得單位矢量vec(b1),然後撤消歸一化以獲得實際值。如果存在許多點,則必須保留所有這些角度的矩陣。