計算三點所形成的夾角的三種方法

2021-05-10 11:01:19 字數 1092 閱讀 6795

第一種方法,使用向量計算三個點abc  

ab=(b.x-a.x,   b.y-a.y)  

ac=(c.x-a.x,   c.y-a.y)  

cosa   =   (ab*ac)/(|ab|*|ac|)  

這種方法好像很複雜,首先ab*ac,  

|ab|,|ac|需要求兩點間的距離  

向量夾角余弦公式法具體舉例:

比如已知三點m(1,1),a(2,2),b(2,1)求角度∠amb  

1.先求向量ma,mb  

向量公式   ma=(a.x-m.x)i+(b.x-m.x)j  

所以:  

ma=(2-1,2-1)=(1,1)  

mb=(2-1,1-1)=(1,0)  

則兩向量的數量積為:  

ma*mb=1×1+1×0=1  

2.求向量的模  

向量的模=sqrt(x*x+y*y)  

|ma|=√(1×1)+(1×1)=√2  

|mb|=√(1*1)+(0*0)=√1  

將以上結果帶入向量夾角余弦公式得:  

cos∠amb=ma*mb/|ma|*|mb|=√2/2  

則∠amb=45度

c++**實現之:

求解圖:

旋轉的方向角如何判斷呢,使用叉乘計算公式。ma-> x mab-> = (ma.x*mb.y - mb.x*ma.y)(k->)  係數為正即為逆時針,負為順時針,0共線。

第二種方法,用餘弦定理:  

cosa   =   (b*b   +   c*c   -   a*a   )/   2*b*c  

其中a,b,c為三點連線所成三角形三邊邊長,用上面第一種方法使用的求模公式可以求出模,或者用兩點間距離公式求出:  

d=√(p1.x-p2.x)^2+(p1.y-p2.y)^2。

第三種方法,其實就是分別求出直線am,bm的斜率,得到對應的角度,兩線角度之差即為夾角,考慮到夾角的方向,順時鐘夾角定為正。

計算方法**(未驗證):

計算逆矩陣的三種方法

目錄 1.待定係數法 2.伴隨矩陣求逆矩陣 3.初等變換求逆矩陣 矩陣a 1,2 1,3 假設所求的逆矩陣為 a,bc,d 則 從而可以得出方程組 a 2c 1 b 2d 0 a 3c 0 b 3d 1 解得a 3 b 2 c 1 d 1 伴隨矩陣是矩陣元素所對應的代數余子式,所構成的矩陣,轉置後得...

計算三點的座標

package com.lrq.oop author 李瑞琦 定義乙個 點 point 類用來表示三維空間中的點 有三個座標 要求如下 可以生成具有特定座標的點物件。提供可以設定三個座標的方法。提供可以計算該 點 距另外點距離平方的方法。public class test1 class point ...

類的三種方法

方法 函式 1 例項方法 函式 預設 2 類方法 函式 classmethod 3 靜態方法 函式 staticmethod class person person number 0 類變數 def init self name,gender 構造方法 用來物件初始化 self.name name ...