2つのベクトルがなす​角度を求めるための方​法が分からないのです​が、どういった計算方​法があるでしょうか?

80 ビュー (過去 30 日間)
光貴 川島
光貴 川島 2021 年 8 月 11 日
コメント済み: 光貴 川島 2021 年 8 月 15 日
大腿、下腿の単位ベクトルx,y,zを作成したので、膝関節の屈曲/伸展角度を求めるために2つのベクトルがなす角度を求めたいのですが、atan2のコードの使い方がよくわかりません。どなたかわかる方がいらっしゃいましたらお願いいたします。

採用された回答

Atsushi Ueno
Atsushi Ueno 2021 年 8 月 11 日
atan2 は、直交座標系の座標(x, y)から極座標系の角度Θを求めるのに使われます。今回の様に2つのベクトルがなす角度を求めるには、内積から角度を求める方法を使うべきです。MATLABのacos関数内積(ドット積)ベクトルの大きさ(ノルム)を用いても演算出来ますが、2つのベクトルがなす角度を求める関数を用いれば最もシンプルに記述できます。
x1 = [0 1 0]; % 大腿の単位ベクトルx成分(y,z成分も可)
x2 = [1 0 0]; % 下腿の単位ベクトルx成分
theta = subspace(x1',x2') % 注:subspace関数には列ベクトルの形で入力する
theta = 1.5708
% theta = 1.5708[rad] = pi/2[rad] = 90[deg]
  10 件のコメント
Atsushi Ueno
Atsushi Ueno 2021 年 8 月 14 日
全ての値が0になってしまう状況を再現できません。どんな入力データを使っていますか?
光貴 川島
光貴 川島 2021 年 8 月 15 日
for i = 1:length(thigh_y)
theta(i,:) = rad2deg(acos(dot(thigh_y(i,:),knee_y(i,:))));
end
acosとdotを使ったコードで書けば数値がしっかり出せました!
お騒がせしました。ありがとうごいざいます。

サインインしてコメントする。

その他の回答 (0 件)

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!