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

2021-08-21 05:40:33 字數 966 閱讀 4183

假設有兩個二維向量 a 、 b,求向量a到向量b的角度是多少?

由向量夾角公式:cos=(a.*b)/norm(a)/norm(b);

可得弧度:acos(cos)

此時得到的弧度並沒有方向,並不知道是順時針還算逆時針。

逆時針可以想到向量叉乘的右手法則:

cross(a,b) = norm(a)*norm(b)*sin

假設螢幕座標系x向右,y向上,那麼叉乘方向朝向本人。

二維向量的叉乘:cross(a,b) = ax * by - ay * bx = norm(a)* norm(b) * sin

叉乘的結果是正數,說明a到b是逆時針,反之順時針;

結果若是0,則說明a,b共線。

先用向量夾角公式算出弧度,再用向量叉乘算出順逆,可以得到 +-0~pi之間。

若要直接算出0~2pi的逆時針角度,由:

sin=cross(a,b)/norm(a)/norm(b)

cos=(a.*b)/norm(a)/norm(b)

可得:tan=cross(a,b)/(a.*b)

a~b逆時針0~360角度就是:pi+atan(tan)

我在網上看到了乙個公式:

平面上三個點:

p1(x1,y1)-->頂點 ,

p2(x2,y2)-->頂點 ,

p3(x3,y3)-->原點,

s(p1,p2,p3)=(x1-x3)*(y2-y3)-(x2-x3)*(y1-y3)

如果s>0 則說明 這連線這3個點時是按照逆時針的順序,如果是s<0則說明連線這3個點是按照順時針的順序

向量 點積應用 兩個向量夾角

點積最重要的應用是計算兩個向量的夾角,或者兩條直線的夾角。圖給出了二維的情況,其中向量b和向量c與x軸的夾角分別為b,c,從基本三角函式可得 b b cosb,b sinb b 表示b的模就是b的長度 c c cosc,c sinc 將上式代入點積等式,將它們的對應的分量相乘,再把結果相加,於是得到...

python求兩個向量的夾角

import numpy as np x np.array 3,5 y np.array 4,2 兩個向量 lx np.sqrt x.dot x ly np.sqrt y.dot y 相當於勾股定理,求得斜線的長度 cos angle x.dot y lx ly 求得cos sita的值再反過來計算...

兩個向量之間的夾角公式 奇技淫巧系列 向量叉乘

一般我們在解決立體幾何題目時會選擇建立座標系,因為這樣做比較保險也有固定套路。很多時候這些題目要求你計算某乙個面的法向量 normal vector 這在高中階段也是有固定方法的,我們這裡想要介紹的是一種更高階也更迅速的方法,也就是引入向量叉乘 cross product,向量 同物理中的 向量 概...