皆様、いつもお世話になっております。
任意軸回転行列関係でひとつ疑問が出たので質問させていただきます。
3D物理シミュレータで物体の回転を扱うときに出た疑問です。
「アクセル」という行列に、単位行列を初めとして、さまざまな任意軸回転行列を、左から掛けていきます。
これが終わると「アクセル」はある回転行列になるはずです。
次に、問題があります。「ベロシティ」という行列に、「アクセル」という回転行列を、左からそのまま掛けるのではなく、回転量をちょっと少なくした、弱い回転を、しかしながら回転軸は同じものを、掛けたいのです。
--
・まず思いついた解決策:
回転角と回転軸を保持しておいて、ベロシティに「回転軸」と「デルタ×回転角」を掛ける、という方法。
=>しかしアクセルの時点で、行列を左から掛けていきたいので、この過程で回転角と回転軸を更新し続ける手法がわかりません。そもそも存在するのでしょうか。
・次に思いついた方法:
アクセルで左から任意軸回転行列をかけていった完成品は、これもまた任意軸回転行列のはずですから、この完成した行列から回転軸と回転角を逆算して、ベロシティに掛ける行列を「回転軸」と「デルタ×回転角」から再構成する、という方法。
=>任意軸回転行列から回転角と回転軸を逆算する方法がわかりません。
・次に思いついた方法:
任意軸回転行列から角度と軸を逆算しなくとも、任意軸回転行列に、何かしら手を加えると、回転角度に定数を掛け、回転量を調節することができる。
=>どんな方法があるのだろうか
--
これらの推測はしましたが、どれも解答にたどり着けませんでした。
どうかよろしくお願い致します。
不明な点がございましたら随時補足いたします。
No.5ベストアンサー
- 回答日時:
まず、行列は回転は表現できても、回転量は表現できません。
たとえば、x軸を中心に2π回転したことを表す行列というのは単位行列になります。
そこから回転量をちょっと少なくしても単位行列から変化しないことは理解できると思います。
つまり、必然的に回転量={回転軸+角度}という形で管理しなければならないということです。
回転軸+角度をを行列に反映する方法はわかると思います。
あとは回転量の合成ですが、それにはクォータニオンを利用します。
クォータニオンには下記の特徴があります。
・回転軸と角度からクォータニオンを作ることができる。
・クォータニオンから回転軸と角度を得ることができる。
・2つのクォータニオン同士の積は、2つの回転量を合成した回転量を表す。
上記を利用すると、回転量の合成が出来ることがわかると思います。
注意が必要なのは、クォータニオンも行列と同様に
ある軸を中心に2πの回転を表すクォータニオン == ある軸を中心に0の回転を表すクォータニオン
ということです。
これの対策としては、回転量の合成を行う前にスケーリングして正規化し、合成後の回転量に逆の変換を行うことで正しい結果を得ることが出来ます。
この回答への補足
お礼の「任意軸回転行列同士の積は必ずしも任意軸回転行列ではない。なぜなら任意の姿勢に持っていくためには回転は最低でも二度必要だからだ。」
やっぱりこれ間違ってますよね。一度でいけますよね。XYZではなく任意軸ならば。
角度と軸を抽出するならクォータニオンがよいということですよね。失礼いたしました。
qwertfk様、わかりやすい解説ありがとうございます。
クォータニオンならば回転軸と角を復元できるのですね。
> 回転量の合成を行う前にスケーリングして正規化し、合成後の回転量に逆の変換を行うことで正しい結果を得ることが出来ます。
こちらも参考にさせていただきます。
自分の質問について間違いがありました。
・任意軸回転行列同士の積は必ずしも任意軸回転行列ではない。なぜなら任意の姿勢に持っていくためには回転は最低でも二度必要だからだ。
という点です。
よって(クォータニオンではなく、任意軸回転行列の場合)出来上がった行列から角度と軸を1つだけ抽出することはできないという結論に至りました。
1日悩んだ結果、この解法として、自分がやりたいのは積としての回転行列の回転量にdtを掛けるということだったので、あらかじめ回転量にdtを掛けた回転行列達の積をとることを思いつきました。
これが予期する動作を見せるか全く検討がつきません。
将来的にはこちらでご回答いただいたクォータニオンやスケーリングのお話を参考にさせていただくことになると思います。
ありがとうございました。
No.4
- 回答日時:
本題とは外れたところからいきますが, 純粋に回転角を記憶しておくのでなければ「デルタ×回転角」という方法はやめた方がいいと思います. 回転を行列や四元数のような形で記憶していると 360° の倍数の情報が消えてしまうので, うまく計算できない可能性があります.
四元数からは回転角や回転軸の情報も (わりと簡単に) 取り出せるんでできないこともないですが, 上に書いたように「360° の倍数の情報」は消えてしまいます.
No.3
- 回答日時:
アフィン変換を用いるのが分かりやすいように思います。
例えば、
http://imagingsolution.blog107.fc2.com/blog-entr …
のあたりを参考に
まず、回転軸が特定の軸(例えばz軸)になるように回転させます。任意回転軸上の2点の座標を基準に考えると理解しやすいです。
(1)Z軸上に回転軸が重なるように移動
X軸周りに回転→Y軸周りに回転(ここまででZ軸と平行になるように)→平行移動(z軸上に)
(2)z軸を中心に回転
(3)先の(1)の逆でもとにもどす
平行移動→Y軸周りに回転→X軸周りに回転
以上を4行4列の変換行列だけを計算すれば良いので計算量は多くはありません。軸周りの回転を変えるときには(2)だけを変えることで可能です。
二次元の例ですが、以前回答したものです(プログラムも載せています)
http://okwave.jp/qa/q8038779.html
また物質の回転軸が固定されている(独楽)のような場合や、回転中心が固定されているなどの場合は(1)からではなく(2)から始める方が楽なことがあります。その例
http://yahootv.okwave.jp/qa7872743.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- バイク車検・修理・メンテナンス TT250Rをオークションで買ったのですが、最初の3回目の走行までは調子良かったのですが、次の走りで 4 2022/06/20 06:10
- Visual Basic(VBA) tatsumaru77様 昨日回答して頂いたものです。 すみませんが、昨日の質問で1つ補足があります 1 2022/05/15 15:06
- Visual Basic(VBA) VBA シート間の転記で、条件の追加コードの書き方について教えて下さい。 13 2023/02/26 09:31
- 物理学 角速度ベクトルにつきまして 3 2022/08/09 15:44
- ゴルフ 【ゴルフ】フェードの方が回転数が多く、ボールも高いからランが出ない。 質問 回転 3 2023/07/07 07:01
- Visual Basic(VBA) エクセルVBA 4 2022/05/14 00:51
- その他(コンピューター・テクノロジー) 50台の織機から回転数を取得・集計しモニターに表示したい 2 2022/11/05 15:48
- Excel(エクセル) excelにおける転記マクロの書き方 2 2023/05/12 03:16
- 国産バイク 117クーペのアイドリング 4 2022/04/01 22:38
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PDF-XChange Viewerで、回転し...
-
物理学-慣性モーメント
-
パワーポイントに貼り付けた画...
-
REVERSE(逆転)の反対語は何に...
-
新幹線での座席回転について
-
モータの回転数と速度の関係
-
単位の換算について
-
図・図形の回転ハンドルが出ない
-
機械系の授業で「P/R」という単...
-
回転できる図形と回転できない...
-
エクセルで図の回転
-
煽り角度とは何ですか?
-
カムの駆動トルク
-
パルスからrpmを求めたいです
-
分かる方よろしくお願いします...
-
円柱と円盤を固定する方法
-
写真のホールソーは、ドリルの...
-
アブソコーダ
-
ヨーヨーが戻る原理について教...
-
トルクは仕事(エネルギー)?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PDF-XChange Viewerで、回転し...
-
新幹線での座席回転について
-
パワーポイントに貼り付けた画...
-
図・図形の回転ハンドルが出ない
-
エクセルで図の回転
-
REVERSE(逆転)の反対語は何に...
-
モータの回転数と速度の関係
-
単位の換算について
-
遠心力で壁にくっつく遊具?
-
機械系の授業で「P/R」という単...
-
ヨーヨーが戻る原理について教...
-
エクセルやワードに挿入したイ...
-
遠心力→小学生にもわかるように
-
換気扇はメーカーによって回転...
-
カムの駆動トルク
-
回転できる図形と回転できない...
-
材料力学のねじりについての質...
-
流体力学 二重円筒
-
写真のホールソーは、ドリルの...
-
直接基礎設計における回転ばね定数
おすすめ情報