可能重複之間的角度:
Finding Signed Angle Between Vectors尋找載體
我需要幫助有一點數學問題來的。
所以,我得到了一個向量v,代表一個方向,以及兩個點s和t。我該做什麼,是找到應用於我的向量v的旋轉,以便使它與由給定的兩個點定義的向量平行。
目前我有點實現這一點,也就是說,我能夠找到角度,而不是應用它的方式(順時針或逆時針)。
目前我只是計算向量的點積計算acos。
歡迎任何輸入。
可能重複之間的角度:
Finding Signed Angle Between Vectors尋找載體
我需要幫助有一點數學問題來的。
所以,我得到了一個向量v,代表一個方向,以及兩個點s和t。我該做什麼,是找到應用於我的向量v的旋轉,以便使它與由給定的兩個點定義的向量平行。
目前我有點實現這一點,也就是說,我能夠找到角度,而不是應用它的方式(順時針或逆時針)。
目前我只是計算向量的點積計算acos。
歡迎任何輸入。
讓我們假設acos
給你一個介於0和pi之間的值。
我們還可以說從s
到t
的載體被稱爲u
。正如你已經計算,
acos((v . u)/(|v| * |u|))
給你一個角度alpha
。實際上,v
可能是u
向alpha
旋轉到一個或另一個方向。
您可能需要2D,但我會先3D。
旋轉應該在與v
和u
都垂直的向量周圍。這個載體當然是兩者的交叉產品:u x v
讓我們看一個例子:
/v
/
/\ alpha
/)
------------ u
在這種情況下,u x v
給對您的顯示器外部的載體。同時,您可以看到alpha
的配給量應該是逆時針,使v
平行於u
。
也就是說,在3D,你必須計算w = u x v
並始終alpha
旋轉v
逆時針相對於w
。或者,您可以按照-w
(即v x u
)順時針旋轉v
alpha
。
在2D中,我假設你想圍繞z
轉動,你不知道哪個方向。可以應用與上述相同的方法,包括:
w = u x v
w
具有正z(x和y是零)
v
應逆時針轉動。v
應該順時針旋轉。
http://stackoverflow.com/questions/2150050/finding-signed-angle-between-vectors – moowiz2020
作爲moowiz2020說,這是一個確切的重複。 – tom10
哦,謝謝,在搜索時沒有找到它;小號 – Skeen