• 締切済み

関節角度の求め方

3点{A(x1,y1),B(x2,y2),C(x3,y3)}の角ABCを求めるには以下の方法でよいのでしょうか. AB=A長 BC=B長とします. =(A長X*B長X+A長Y*B長Y)/SQRT(A長X^2+A長Y^2)/SQRT(B長X^2+B長Y^2) =ACOS(cos)*180/PI() 数学・物理学が苦手にも関わらず早急に解決しなければなりません・・・.何か簡単な方法がありましたらよろしくお願いします. よろしくお願いします.

みんなの回答

回答No.1

3点{A(x1,y1),B(x2,y2),C(x3,y3)}の角ABC をθとするとき、θ[ラジアン] は下記の式で求まります。 t = (x1-x2)・(x3-x2) + (y1-y2)・(y3-y2) -------------------------- (1) r = √{(x1-x2)^2 + (y1-y2)^2}・√{(x1-x2)^2 + (y1-y2)^2} ------------ (2) を先に計算しておいて θ = arccos(t/r) [ラジアン] ------------------------------------- (3) あるいは θ = arccos(t/r)・180/π [度] ----------------------------------- (4) [補足1] 上記の t はベクトル a~=(x1-x2,y1-y2)、b~=(x3-x2,y3-y2) の内積 (a~,b~) です。 また、r はベクトル a~、b~ の長さの積、すなわち BA、BC の長さの積です。

bigsea1984
質問者

お礼

大変分かりやすいご回答ありがとう御座います.