
No.4ベストアンサー
- 回答日時:
先ず、中心点(Sx,Sy,Sz)が原点にくるよう全体を平行移動させます。
(一番最後に元に戻します)
始点(Px,Py,Pz)は、(Px-Sx,Py-Sy,Pz-Sz)に移ります。この座標を(Px',Py',Pz')とします。
次に、回転軸ベクトル(Ax Ay Az)を回転させ、x軸に合致させます。それには二回の
回転変換が必要です。
最初に、ベクトル(Ax Ay Az)と、x軸方向単位ベクトル(1 0 0)のなす平面の法線ベクトルが
z軸に合うよう、x軸を回転させます(その角度をφとします)。
すると、回転軸ベクトルはx-y平面上に乗るので、それがx軸に合うよう、z軸を回転させます
(その角度をψとします)。
ベクトル(Ax Ay Az)と、x軸方向単位ベクトル(1 0 0)のなす平面の法線ベクトルは、(0 Az -Ay)。
x軸周りにφ回転させると、このベクトルは、
「1 0 0 「 0 =「 0
0 cosφ -sinφ Az Az・cosφ+Ay・sinφ
0 sinφ cosφ」 -Ay」 Az・sinφ-Ay・cosφ」
で、z軸ベクトルに合うので
「 0 =「0
Az・cosφ+Ay・sinφ 0
Az・sinφ-Ay・cosφ」 1」
これから、cosφ=-Ay/(Ay^2+Az^2)、sinφ=Az/(Ay^2+Az^2)
∴ φ=Arctan(-Az/Ay)
回転軸ベクトル(Ax Ay Az)は、
「1 0 0 「Ax =「 Ax =「 Ax =「Ax
0 cosφ -sinφ Ay Ay・cosφ-Az・sinφ Ay・{-Ay/(Ay^2+Az^2)}-Az・{Az/(Ay^2+Az^2)} -1
0 sinφ cosφ」 Az」 Ay・sinφ+Az・cosφ」 Ay・{Az/(Ay^2+Az^2)}+Az・{-Ay/(Ay^2+Az^2)}」 0」
に変換され、x-y平面上に乗ります。これを(Ax' Ay' Az') とします。
つまり、(Ax' Ay' Az')=(Ax -1 0)
始点(Px',Py',Pz')もこの変換を受けるのですが、変換を全部纏めて後、一括変換させます。
今度は、x-y平面上に乗った回転軸ベクトル(Ax' Ay' Az')を、z軸の周りにψ回転させます。
「cosψ -sinψ 0 「Ax' =「Ax'・cosψ-Ay'・sinψ =「Ax・cosψ+sinψ
sinψ cosψ 0 Ay' Ax'・sinψ+Ay'・cosψ Ax・sinψ-cosψ
0 0 1」 Az'」 Az' 」 0 」
これが、x軸ベクトルに合うので、
Ax・cosψ+sinψ=1
Ax・sinψ-cosψ=0
これから、cosψ=Ax/(Ax^2+1)、sinψ=1/(Ax^2+1)
∴ ψ=Arctan(1/Ax)
以上の回転の変換の積は、
「cosψ -sinψ 0 「1 0 0 =「cosψ -sinψ・cosφ sinψ・sinφ
sinψ cosψ 0 0 cosφ -sinφ sinψ cosψ・cosφ -cosψ・sinφ
0 0 1」 0 sinφ cosφ」 0 sinφ cosφ 」
この変換を始点(Px',Py',Pz')に施します。
「cosψ -sinψ・cosφ sinψ・sinφ 「Px' = 「Px'・cosψ-Py'・sinψ・cosφ+Pz'・sinψ・sinφ
sinψ cosψ・cosφ -cosψ・sinφ Py' Px'・sinψ+Py'・cosψ・cosφ-Pz'・cosψ・sinφ
0 sinφ cosφ 」 Pz'」 Py'・sinφ+Pz'・cosφ 」
この点を(Px”,Py”,Pz”)とします。
さて、ここでx軸に合った回転軸ベクトル(1 0 0)周りに(Px”,Py”,Pz”)を角度θ、回転させます。
「1 0 0 「Px” =「 Px”
0 cosθ -sinθ Py” Py”・cosθ-Pz”・sinθ
0 sinθ cosθ」 Pz”」 Py”・sinθ+Pz”・cosθ」
これを(P_x, P_y, P_z)とします。
今度は、回転させた回転軸を元に戻す変換です。
回転の変換の逆行列は、行列各要素の余因子の行と列を入れ替えたものを行列式で割ったもので、
行列式は、(cosψ)^2+(sinψ)^2=1 なので、逆行列は
「 cosψ sinψ 0
-sinψ・cosφ cosψ・cosφ sinφ
sinψ・sinφ -cosψ・sinφ cosφ」
これを、(P_x, P_y, P_z)に施します。
「 cosψ sinψ 0 「P_x =「P_x・cosψ+P_y・sinψ
-sinψ・cosφ cosψ・cosφ sinφ P_y -P_x・sinψ・cosφ+P_y・cosψ・cosφ+P_z・sinφ
sinψ・sinφ -cosψ・sinφ cosφ」 P_z」 P_x・sinψ・sinφ-P_y・cosψ・sinφ+P_z・cosφ」
結局、θ回転後のP点の座標は、
x座標 : P_x・cosψ+P_y・sinψ
y座標 : -P_x・sinψ・cosφ+P_y・cosψ・cosφ+P_z・sinφ
z座標 : P_x・sinψ・sinφ-P_y・cosψ・sinφ+P_z・cosφ
となります。
ここで、置き換えた変数を順次、元に戻します。
P_x、P_y、P_z を Px”、Py”、Pz” に、
Px”、Py”、Pz” を Px’、Py’、Pz’ に、
最後に、平行移動を戻して Px’、Py’、Pz’ を Px、Py、Pz に直します。
とても詳しい御説明をありがとうございます。
専門書でも同じような感じで書いていました(一部専門書に誤字があって???でしたが気づくまで時間かかりました)。
3次元回転は非常に難しいですが、いろいろと勉強していきたいと思います。
この度はとても助かりました。
No.3
- 回答日時:
軸の方向ベクトルが
(Ax, Ay, Az) なのか (Ax-Sx, Ay-Sy, Az-Sz) なのか、
図からは判り難いけど… いずれにせよ、
ソレと直交するベクトルを2個見つけることができれば、
(Sx, Sy, Sz) を原点とし、回転軸を座標軸の一つに持つ
直交座標系が作れるでしょう。その座標系では、
質問の回転は、座標平面内での回転になります。
さあ、成分計算。
No.2
- 回答日時:
簡単なようで結構複雑ですね。
3Dのアフィン変換
http://ft-lab.ne.jp/cgi-bin/wiki.cgi?page=%A5%A2 …
が参考になるかと思います。
基本的な移動行列に分解してそれぞれの行列の合成行列として変換行列を考えて見てください。
ありがとうございます。これを機に行列を勉強し始めました。
そのような専門書を買って今読んで、いちおうできたとことです。
とても助かりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
先着1,000名様に1,000円分もらえる!
教えて!gooから感謝をこめて電子書籍1,000円分プレゼント
-
3次元座標を原点中心に回転したい
数学
-
回転した座標軸と一致させるための回転軸と角度の算出
数学
-
3次元空間上の2つの座標から角度を求めたい
その他(プログラミング・Web制作)
-
4
ベクトルをロールピッチヨーに変換する方法
数学
-
5
X軸方向の角度とY軸方向の角度の合成
数学
-
6
3次元座標2点からの直線式の求め方
数学
-
7
平面方程式の傾きについて
数学
-
8
「平面の方程式」z軸の方向ベクトルは(0,0,1)
数学
-
9
3次元空間で3点を通る平面を2次元座標で表すには
数学
-
10
3次元の回転角度の求め方について教えてください。
数学
-
11
回転行列の求め方
数学
-
12
三次元の座標の回転をExcelで計算したい。回転行列?
Excel(エクセル)
-
13
3次元で回転させた座標値の計算方法
数学
-
14
3次元のベクトルの合成
数学
-
15
任意点を中心とした回転
C言語・C++・C#
-
16
既定のコンストラクタがない?
C言語・C++・C#
-
17
3次元空間での傾き、切片の求め方
数学
-
18
3次元での点群に対する最小二乗法での平面の算出について(点と平面の距離
数学
-
19
平面とベクトルのなす角度の求め方
数学
-
20
3次元以上の直交変換(回転)を、2つのベクトルから求める方法。
数学
関連するQ&A
- 1 平面図形をx軸、y軸に対して回転させた時の傾きの求め方
- 2 3次元以上の直交変換(回転)を、2つのベクトルから求める方法。
- 3 3Dベクトルを3Dの軸ベクトルに沿って回転させる方法
- 4 EFベクトルの求めかた。図的にみると、aベクトル+ bベクトルなのに、式を立ててとくと-aベクトル+
- 5 意味不明な回答が来たのでもう一度投稿します。何故x軸回転の体積を求める際にx軸で折り返した体積を求め
- 6 回転した座標軸と一致させるための回転軸と角度の算出
- 7 4次元空間の4つのベクトルが張る空間が1次元、2次元、3次元、4次元である条件
- 8 あるベクトル関数はx軸周りの回転があるかどうか、という問題の解き方について。 これはあるベクトル関数
- 9 質問です。r→=(x,y,z)を3次元空間における位置ベクトルとする。3次元空間における任意の閉じた
- 10 質問です。3次元空間内に3次元ベクトルA=(2x,y,0)を定義する。xy平面内で原点を中心とする半
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
3辺の比率が3:4:5である直...
-
5
次の三角比を45°以下の角の三角...
-
6
三角関数のSinθ=-1なら
-
7
tan150°の求め方教えてください!
-
8
e^iθの大きさ
-
9
三角関数 sin cos tanの表につ...
-
10
高調波をわかりやすく例えると何?
-
11
三角関数の加法定理について
-
12
0°、90°、180°のsin,cos,tanの値
-
13
sin三乗Θ+cos三乗Θの値は?
-
14
tanθ=2分の1のときの sinθとcos...
-
15
二つの円の重なっている部分の面積
-
16
数学 2次曲線(楕円)の傾きの計...
-
17
数学の宿題がわからないです><
-
18
余弦定理を使ってある辺の長さ...
-
19
4辺と1つの対角線の長さが分か...
-
20
急いでます! θが鈍角で、sinθ...
おすすめ情報