質問するログイン新規登録
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

1回答

3307閲覧

3次元の2ベクトル間の回転軸,角度の求め方

aifa_

総合スコア7

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2020/08/27 02:08

編集2020/08/27 02:10

0

0

例えば3次元上で下記2つのベクトルがある時、
a_vecをb_vecの向きに回転させたいと思います。

C++

1float a_vec[3]={0,1,0}; 2float b_vec[3]={1,0,0};

この場合z軸に90度回転すれば出来るかと思いますが、
x,y,z軸に其々何度回転するというのは、
どのように求めたらよいのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fana

2020/08/27 02:21

> x,y,z軸 という3軸周りの回転によって表現することはmustですか?
aifa_

2020/08/27 02:37

ご質問ありがとうございます。 mustではないです。 ぱっと思いついたのがx,y,zの回転行列を用いて しか思いつけなかったので、このような質問分になった形です。
guest

回答1

0

回転軸と回転角は外積から算出できるでしょう.
それで十分ならば話はそれで終わりですが,

x,y,z軸に其々何度回転するというのは、
どのように求めたらよいのでしょうか?

というのが必要なのであれば…… うーん…

前記の求めた回転軸と回転角から回転行列を作って(この部分は「ロドリゲス」とか「四元数」とかで検索すれば式が見つかるかと),
「3軸周りの角度」で考えた場合の回転行列の式と見比べてやることで,各軸周りの回転量を求める

…という方法しか思いつかない.

投稿2020/08/27 02:26

fana

総合スコア12253

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aifa_

2020/08/27 02:47

ご回答ありがとうございます。 具体的にコードの記載はできますでしょうか?
fana

2020/08/27 03:07

わざわざコードという形で示すような内容ではないと思います. 外積をご存じなければ検索してください.計算方法が見つかるでしょうからその計算をそのまま実装してください. また,以下のような外積の性質の話も見つかるハズです. ・方向が2つのベクトルに直交する ・長さは2つのベクトルが作る平行四辺形の面積 前者より,外積を計算して出てきたベクトル自体が回転軸であることは自明. 後者の性質から,回転角度(2つのベクトルが成す角)Θもわかる: 【 平行四辺形の面積(2つのベクトルの長さとsinΘを用いて書く) = 外積の長さ 】 という方程式からsinΘの値がわかるので.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問