計算兩個向量的夾角(分逆時針與順時針)

2021-10-09 23:18:17 字數 451 閱讀 6430

兩個向量,求解乙個向量旋轉到另乙個向量的角度,逆時針為正,順時針為負。【兩向量的夾角,角度帶正負號】

def calangle(v1, v2):

# v1旋轉到v2,逆時針為正,順時針為負

# 2個向量模的乘積

thenorm = np.linalg.norm(v1) * np.linalg.norm(v2)

# 叉乘

rho = np.rad2deg(np.arcsin(np.cross(v1, v2) / thenorm))

# 點乘

theta = np.rad2deg(np.arccos(np.dot(v1, v2) / thenorm))

if rho < 0:

return - theta

else:

return theta

使用了向量的外積來判斷正負

math 判斷兩個向量之間夾角是逆時針或順時針

假設有兩個二維向量 a b,求向量a到向量b的角度是多少?由向量夾角公式 cos a.b norm a norm b 可得弧度 acos cos 此時得到的弧度並沒有方向,並不知道是順時針還算逆時針。逆時針可以想到向量叉乘的右手法則 cross a,b norm a norm b sin 假設螢幕座...

python 求兩個向量的順時針夾角

以上述舉例,要求 ob vec ob相對 oa vec oa的順時針夾角。注意 這裡使用影象座標系 1 定義求順時針角度的函式 import numpy as np defclockwise angle v1,v2 x1,y1 v1 x2,y2 v2 dot x1 x2 y1 y2 det x1 y...

兩個三維向量的夾角計算

a cos v1 v 2 v1 v2 需要注意的 的範圍再0 pi之間,怎麼解決0 2pi的問題呢?這裡就需要用到向量的叉乘,根據叉乘後的向量與螢幕方向來確定角度是否超過180 如下 float angle osg vec3f line1,osg vec3f line2,osg vec3f dire...