• 締切済み

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

  • 3次元での回転による座標変換

    3次元での回転による座標変換に関して質問があります. X軸,Y軸,Z軸の直交座標系があるとします. この座標系において,ある位置ベクトル(a1,b1,c1)がX軸,Y軸,Z軸と成す角度は,θx,θy,θzは,ベクトルの内積から算出可能だと思います. θx=a1/sqrt(a1^2+b1^2+c1^2) θy=b1/sqrt(a1^2+b1^2+c1^2) θz=c1/sqrt(a1^2+b1^2+c1^2) X,Y,Zの直交座標系を回転させて,この位置ベクトルの向きを基準としたX'軸,Y'軸,Z'軸による新しい直交座標系を設定するには,どのようにすればよいでしょうか? θx,θy,θzと各軸での回転角度は違うものという認識でいいのでしょうか? 元の座標系において,各軸回りに順番に回転させればいいかと思うのですが,どうもイメージがつかみきれません. よろしくお願い致します.

  • 4次元空間上での平面の式

    任意の点を(x,y,z,u)とした4次元空間で (1)3次元の立体を表す式は ax+by+cz+du=e でいいですか? (2)2次元の平面を表す式は一般にどのような形になりますか? 上記のことに疑問を持った理由。 2次元空間で1次元の直線を表す式は、一般にax+by=cとなる。 これは、2点(x,y),(xo,yo)を通り、方向ベクトルが(a',b')で媒介変数tとして x=a't+xo y=b't+yo と書くこともできる。 3次元空間で2次元の平面を表す式は、一般にax+by+cz=d となる。 これは、 平面上の2点(x,y,z)と(xo,yo,zo)を結ぶベクトルとこの平面に垂直な直線の方向ベクトル(a,b,c)の内積が0であるという条件より導かれる。 実際に計算すると a(x-xo)+b(y-yo)+c(z-zo)=0 ax+by+cz=axo+byo+czo になり、ax+by+cz=dという形と同値であることが確認できる。 【別な考え】 3次元空間内の平面は、異なる3つの点によって決定するので、異なる3点を P(xo,yo,zo)、Q(x1,y1,z1)、R(x2,y2,z2) とする。この平面上の任意の点X(x,y,z)は、媒介変数t,sを使って OX↑=OP↑+tPQ↑+sPR↑ と書ける。 成分表示にするために OP↑=(xo,yo,zo) PQ↑=(a,b,c) PR↑=(a',b'c') と方向ベクトルを定義すると、 x=xo+at+a's......(1) y=yo+bt+b's......(2) z=zo+ct+c's......(3) という書き方も平面を表す式である。 実際に(1)と(2)から未知数t,sについてx,yの式で表すことができるので、それを(3)式に代入すれば、(1)(2)(3)式は、一つの式 a"x+b"y+c"z=d'という形になる。 直線を表す式は、媒介変数tを使って x=at+xo y=bt+yo z=ct+zo または、 (x-xo)/a=(y-yo)/b=(z-zo)/c=t となる。 4次元空間で同じように、 直線や平面や立体を考えてみた。 2次元では、(1,0)と(0,1)が直交の基底ベクトル。 3次元では、(1,0,0)と(0,1,0)と(0,0,1)が直交の基底ベクトル。 したがって、 4次元では、(1,0,0,0)と(0,1,0,0)と(0,0,1,0)と(0,0,0,1)が直交の基底ベクトル。 4次元空間では、点は4つの成分で表される。 4次元空間での直線について。 直線は2点が与えられば書ける。 2点(x,y,z,u)と(xo,yo,zo,uo)を通り、その直線の方向ベクトルが(a,b,c,d)だとしたら、媒介変数tを使って、 x=at+xo y=bt+yo z=ct+zo u=dt+uo となって (x-xo)/a=(y-yo)/b=(z-zo)/c=(u-uo)/d=t 次に4次元空間での3次元立体について。 2次元空間では、それより一つ次数が低い1次元の直線は一つの式 ax+by=c で与えられた。 3次元空間では、それより一つ次数の低い2次元の平面は、一つ式 ax+by+cz=d で表さられた。 したがって、4次元空間では、それより一つ次数の低い3次元の立体は、 ax+by+cz+du=e で表されるだろう。 【別な考え】 4次元空間では、ある方向ベクトル(a,b,c,d)に直交する立体は一つしかない。なぜなら、4次元空間での基底ベクトルは4つで空間(立体)は3つの基底ベクトルで決定されて、残り一つが残っているからだ。 立体上の2点(x,y,z,u)と(xo,yo,zo,uo)を結ぶベクトルとこの立体に垂直な直線の方向ベクトル(a,b,c,d)の内積が0であるという条件で計算すると a(x-xo)+b(y-yo)+c(z-zo)+d(u-uo)= 0 ax+by+cz+du=axo+byo+czo+duo になり、ax+by+cz+du=eという形になる。 2次元の平面はどうだろうか? (ここからが本題) 4次元空間では、ある方向ベクトル(a,b,c,d)に直交する平面は、2つあるはずだ。 なぜなら、4次元空間での基底ベクトルは4つで平面は2つの基底ベクトルで決定されて、残り2つが残っていて、それはこの平面に直交するように選べるからだ。 平面は、異なる3つの点によって決定するので、異なる3点を P(xo,yo,zo,uo)、Q(x1,y1,z1,u1)、R(x2,y2,z2,u2)、 とする。この平面上の任意の点X(x,y,z,u)は、媒介変数t,sを使って OX↑=OP↑+tPQ↑+sPR↑ と書ける。 成分表示にするために OP↑=(xo,yo,zo,uo) PQ↑=(a,b,c,d) PR↑=(a',b',c',d') と方向ベクトルを定義すると、 x=xo+at+a's......(1) y=yo+bt+b's......(2) z=zo+ct+c's......(3) u=uo+dt+d's.....(4) という書き方も平面を表す式である。 (1)と(2)を連立して、未知数t,sについてx,yの式で表すことができるので、それを(3)式と(4)式代入すれば、(1)(2)(3)(4)式は、2つの式 a"x+b"y+c"z+d"u=e' a"'x+b"'y+c"'z+d"'u=e" になる。 この2つの式からuを消去すれば、結局、 Ax+By+Cz=D という形になる。 zを消去すれば、 Ax+By+Cu=D yを消去すれば、 Ax+Bu+Cz=D xを消去すれば、 Au+By+Cz=D

  • 三次元ユークリッド空間上の直線の方程式は?

    三次元ユークリッド空間上で,直交座標を x, y, z とする時, 任意の平面は,a, b, c, d を実数として(abc ≠ 0), ax + by + cz + d = 0 で表されます. では,三次元ユークリッド空間上の任意の或る一つの直線の方程式は, 直交座標を x, y, z とする時,一般的に,どの様に表現されるのでしょうか? どなたか,教えて下さい.

  • 3次元空間の回転行列

    3次元空間上の点A(X,Y,Z)と点B(X',Y',Z')があるとします。ただし、点Bは、点Aを原点Oを中心とする3次元空間の回転をさせることによって得られる点とします。 このAをBへと回転させる行列を、特に以下のように考えて得られる回転行列として導出する方法を教えてください。 O,A,Bによって作られる平面に直交し、原点を通る軸を回転軸として、それを軸にAを∠AOB回転させる。 一応自分なりに考えたこの回転行列を求める方法としては、まず ベクトルOA、OBに対してシュミットの直交化を用いて新たな正規直交基底、Vx、Vy、Vzを求めます。ただし、はじめのVxの導出にはOAを用い、VzはVxとVyの外積を計算しました。 次にP=(Vx,Vy,Vz)として座標変換の行列Pを作ります。 そして、求める行列Wを W = PMz(P^-1) (Mzはz軸まわりに∠AOB回転させる行列、P^-1はPの逆行列) として導出しました。 このようにして解く方法を考えたのですが、これは正しいのでしょうか? また、これ以外にもっとスマートに解く方法があれば教えてください。 よろしくお願いします。

  • 4次元空間について

    4次元空間に半径1、原点中心の超球(x^2+y^2+z^2+w^2=1)があります。これを、4次元における平面(例えばa*x+b*y+c*z+d*w=eといった平面)で切り取った切片、つまりこの平面と超球の共通部分はおそらく3つの変数で表せると思うのですが、その切片を3次元空間で表すとどんな図形になるのでしょうか? 考えているのですがイマイチつかめません。 どなたかお力添えをおねがいします。

  • 三次元空間の3点のなす角度

    三次元空間の3点のなす角度を知る公式が知り無たいのです。直交座標で、3点の x, y, z 座標値はわかっているものとします。 自分でいろいろ考えたのですが、かなりややこしくなってしまいこれは公式を見つけないとだめだなと思いました。よろしくお願いします。

  • 3次元ユークリッド空間内の直線

    3次元ユークリッド空間内の直線 連立1次方程式 y-2z=1 2x+2y+az=b 4x+3y=b 2x+y+z=c a,b,cは実数とします。 Q 方程式の解の全体が3次元ユークリッド空間内の直線になっているとき a,b,cの間に成り立つ関係を述べよ。 またその直線を表す方程式を求めよ 全然わかりません。 解の全体が3次元ユークリッド空間内の直線になるとは どのような状態のことなんでしょうか? よろしくお願いします

  • 4次元空間の超平面で、パラメータを消去するには?

    4次元のxyzw直交空間を考えます。 直線は、パラメータを用いて、 x=x[0]+a[1]s y=y[0]+b[1]s z=z[0]+c[1]s w=w[0]+d[1]s のように書けて、パラメータを消すと、 (x-x[0])/a[1]=(y-y[0])/b[1]=(z-z[0])/c[1]=(w-w[0])/d[1] のように書けます。 平面(?)は、パラメータを用いて、 x=x[0]+a[1]s+a[2]t y=y[0]+b[1]s+b[2]t z=z[0]+c[1]s+c[2]t w=w[0]+d[1]s+d[2]t のように書けますが、パラメータを消すとどうなるのでしょうか? 超平面は、パラメータを用いて、 x=x[0]+a[1]s+a[2]t+a[3]u y=y[0]+b[1]s+b[2]t+b[3]u z=z[0]+c[1]s+c[2]t+c[3]u w=w[0]+d[1]s+d[2]t+d[3]u のように書けますが、パラメータを消すとどうなるのでしょうか? おそらくAx+By+Cz+Dw+E=0のように書けるとは思いますが、それらの係数は具体的にはどのような形なのでしょうか? 3次元空間の平面の場合には、この最後の問いは、2つの3次元ベクトルの外積で表されると思うので、今回の設定を4次元にしてみました。

  • 座標変換

    3次元(x,y,z)物体の回転でよくx軸、y軸、z軸で回転がありますが、xy平面との角度φを回転させたいときはどうすればいいでしょうか? xy平面との角度をφ回転させた後の座標(X,Y,Z)はどうなるのでしょうか? また X     x Y = T・y Z     z このような行列Tが存在するのでしょうか?

  • 3次元空間での傾き、切片の求め方

    ある点S(X1,Y1)からある点G(X2,Y2)の直線があると仮定します。 このとき 傾きA=(Y2-Y1)/(X2-X1) 切片BはY=AX+Bより    =Y-AX と、2次元空間の場合はわかります。 ですがこれが3次元空間になるとどのように解けばいいのか分からないです。分かる人がいたら教えてください。 ある点S(X1,Y1,Z1)からある点G(X2,Y2,Z2)の直線があると仮定します。 このとき 傾きA= ? 切片B= ?