-2
可以說我有2個點--A和B.在它們和0,0之間形成一個角度,我想移動點A以便點B移動得太過保留它們之間的角度。矢量角度偏移
現在我將矢量偏移量轉換爲弧度,添加我需要的角度並將其轉換回正常矢量,然後用它將B放在正確的位置。我想知道,如果我可以通過避免跳到角度和回來優化這個過程?由於正弦函數在CPU上的計算成本很高,因此可以提供很大的加速。
可以說我有2個點--A和B.在它們和0,0之間形成一個角度,我想移動點A以便點B移動得太過保留它們之間的角度。矢量角度偏移
現在我將矢量偏移量轉換爲弧度,添加我需要的角度並將其轉換回正常矢量,然後用它將B放在正確的位置。我想知道,如果我可以通過避免跳到角度和回來優化這個過程?由於正弦函數在CPU上的計算成本很高,因此可以提供很大的加速。
將兩個載體歸一化爲vec(a)
,vec(b)
。假設矢量之間的角度爲ang(p)
,請保留一個變換矩陣A=[cosp,-sinp;sinp, cosp]
(由於它們之間的角度不變,因此不必再次計算,因爲它們之間的角度不變)將旋轉後的單位矢量vec(a1)
與矩陣A
進行變換以獲得單位矢量vec(b1)
,然後撤消歸一化以獲得實際值。如果存在許多點,則必須保留所有這些角度的矩陣。
要保留哪個角度? A和B在(0,0)處的角度? – 0605002
是的,那是一個 –
然後B的位置不是唯一的。假設原點是O,那麼你可以把B放在光線OB上的任何地方,保持A恆定。對於A的任何位置,B有無限多個可能的位置來保存角度O. – 0605002