• 締切済み

3次元空間におけるアフィン変換について

3次元空間で直線を軸とした回転運動している物体の座標の特定をしたいと考えています。 最終的にX、Y、Z軸を軸とする回転角度を得ることができればと思っています。 具体的に以下のような数学の問題があったとして、 どう解いていくかを経緯も含めて教えていただきたいのです。 [設問] 3次元空間に点A(x,y,z) = (0,0,0)と点B(100,-100,100)の2点がある。 また直線ABに含まれない点C(50,-50,0)がある。 点Cを含み直線ABに直交する平面と直線ABとの交点をDとし 点Cが線分CDを半径として当該平面上の円を一定の速度で回転している。 このとき点Cの円周上の回転角度をaとする時、 点Cのx、Y、Z軸それぞれを軸とした回転角度をaを用いて表しなさい

みんなの回答

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.3

>ただ点Bの回転行列の逆行列"も"かけている意味が分からなかったのですが・・・ 逆行列Fのことでしょうか? GEc だけでは点BはZ軸上にあり、回転面もXY平面に平行になったままです。 それに逆行列を掛けることによって、点Bや回転面がもとに位置に戻ります。 それに従って、点Cの回転後の位置も本来の位置に戻ります。

TOMITAYASUJI
質問者

お礼

そっか!そうですよね。本来の位置に戻さないと座標が判りませんよね。 ありがとうございます!!ただいま計算式のところでちょっと苦労しています w

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.2

計算はちょっと面倒なので考え方だけ書きます。 X,Y,Z軸それぞれを軸とした回転角度を求めたということですが、 これは、回転後のX,Y,Z座標が分かれば回転角度は簡単に計算できると思いますので、 回転後のX,Y,Z座標を求めることとします。 まず、点BをZ軸上に移動させる回転行列を求めます。 これはいろんな方法がありますが、例えば、Z軸を軸として点BがYZ平面に来るように回転し、さらにX軸を軸としてそれがXZ平面にくるように回転させれば点BをZ軸上に移動できます。 その回転行列をE、逆行列(逆回転の回転行列)をFとします。 その回転で点Cの回転面はXY平面と平行になるので、XY平面でのa回転の回転行列をGとすれば、 点Cのa回転後の座標は、FGEcとなります。(cは点Cの位置ベクトル)

TOMITAYASUJI
質問者

お礼

ありがとうございます。なるほど、まずは回転の軸となっている直線を Z軸に重ねて考えればいいということですね。 そのために点Bを2回、2次元平面(XY平面とYZ平面)での回転移動をして その変換行列と点CのXY平面上での回転行列と点Cの位置ベクトルを かけて合わせるということですね。チョット計算は難しそうですが。 ただ点Bの回転行列の逆行列"も"かけている意味が分からなかったのですが・・・

noname#152422
noname#152422
回答No.1

回転角度とはどれとどれのなす角度? もしかして角速度のことを言っている? 円の中心はどこ?D? それぞれを軸とした回転角度とは何? 書かれている内容があやふやなので答えようがありません。

TOMITAYASUJI
質問者

補足

関心を持ってもらってありがとうございます。 それと設問があいまいですみません。補足します。 まず円運動の中心はDです。半径はCDです。 点Cを含む直線ABに直交する平面でこの円に沿って回転しています。 この円周上を点Cが初期位置から例えば30度回転した時 (回転方向は原点側から見て時計回りとします) X,Y,Zのそれぞれの軸周りを何度回転したことになるかを 計算したいのです。 X,Y,Zのそれぞれの軸周りを回転するとは、 たとえばX軸回りの回転は点Cの初期位置と回転移動後の位置を YZ平面に投影しYZ平面の原点と移動前の投影点と移動後の投影点の 3点を結んでできる三角形の原点を含む内角の角度ということになります。 同様にY軸回りの回転はXZ平面、Z軸回りの回転はXY平面に 点Cの移動前と移動後の位置を投影しその2点と原点とを結び 原点側にできる内角の角度ということになります。

関連するQ&A