第一種方法,使用向量計算三個點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 ...