回転、座標、空間

このQ&Aのポイント
  • 三角形の座標変化と回転軸の関係について教えてください。
  • 具体的な解法が知りたいです。数学の知識がなくて困っています。
  • 回転軸を用いた三角形の形の変化を表す方法を教えてください。
回答を見る
  • ベストアンサー

回転、座標、空間

「三角形の各頂点の座標が(xii, yii, zii),(xij, yij, zij), (xik, yik, zik)から(xji, yji, zji),(xjj, yjj, zjj), (xjk, yjk, zjk)に移動するとする。三角形の形が変化しない時、この動きはある回転軸ax+by+cz+d=0を使うと、軸の周りの回転角θと軸上の並進距離Lを用いて表せる。a,b,c,dおよびθ,Lを三角形の各点の座標(3*2=6つ)を用いて示せ。」という問題があります。 あらゆる動きが回転軸を用いれば表現できそう、というところまではなんとなく理解できるのですが、具体的にどのように解けばよいのか分かりません。数学の知識があまりなく途方にくれています。どなたかご教授お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • info22
  • ベストアンサー率55% (2225/4034)
回答No.1

>(xii, yii, zii),(xij, yij, zij), (xik, yik, zik)から(xji, yji, zji),(xjj, yjj, zjj), (xjk, yjk, zjk)に… これは紛らわしいので A(xpi, ypi, zpi),B(xpj, ypj, zpj),C (xpk, ypk, zpk)からA'(xqi, yqi, zqi),B'(xqj, yqj, zjj),C' (xqk, yqk, zqk)に… などとした方が良いかと思います。 以下の方法でやればいいでしょう。 △ABC≡△A'B'C'で頂点の対応がAとA'、BとB'、CとC'がそれぞれ対応しているとします。 △ABCの法線ベクトルを(Ep→) (方向は(AB→)×(AC→)の方向) △A'B'C'の法線ベクトルを(Eq→) (方向は(A'B'→)×(A'C'→)の方向) とすると (2)三角形上の特定の点(頂点、外心、重心など)を平行移動であわせる。 例えば頂点Aを頂点A'にあわせる為 A,A'を通る直線に沿ってAを(AA'→)=(xqi-xpi,yqi- ypi,zqi- zpi) 平行移動する。平行移動後はAはA'に一致する。 (2)平行移動後の△ABCを△A"B"C"とする。 次に、点A'を中心に△A"B"C"を回転させて、△A'B'C'に重ねる回転移動をする。回転角は、法線ベクトル(Ep→)が法線ベクトル(Eq→)に重なるように回転角を定めればよい。 例えば、(Ep→)=(epx,epy,epz),(Eq→)=(eqx,eqy,eqz)とすると (Eq→)=(Ep→)M となる回転行列 M を決めればよい。 以上の手順、つまり (1)△ABCの各頂点A,B,Cを平行移動ベクトル(AA'→)で平行移動する。 △ABCは△A"B"C"に移る。 (2)点A'を中心に、△A"B"C"の各頂点A",B",C"を回転行列Mで回転移動する。 △A"B"C"は△A'B'C'に重なる。 質問の課題は、Mを求めれば解決するでしょう。 Mは、例えば x軸の回りの回転行列Mx と y軸の回りの回転行列My の積で表せるでしょう 。M=MxMy (この方法は「3次元 アフィン変換」で検索すれば 沢山載っています)

datacont
質問者

お礼

丁寧な説明ありがとうございました。がんばってみます。

関連するQ&A

  • 3次元座標での点の回転について

    3次元座標上に複数の点があり、それらを同時にx,y,z軸周りにφ,θ,Ψ度回転させたとき、 各点の移動前と移動後の座標から、この回転角度φ,θ,Ψを求めたいのですが、 どのような計算で求めることができるでしょうか?

  • ワールド座標系で回転

    こんにちは。3Dプログラムの仕事の指示を受けました。 3Dプログラムは無知でして見よう見まねで行っています。 現在回転行列について困っています。 正方形のモデルをY軸に45度、X軸に45度回転させようとしています。 現在はモデルのローカル座標系で回転するのでY軸の回転でローカル座標系が変わった後にX軸で回転します。これを相対変換と言えばよろしいのでしょうか。 WorldMatrix = RotationX(AngleX) ; WorldMatrix *= RotationY(AngleY) ; WorldMatrix *= RotationZ(AngleZ) ; 上記の回転ではなく、ワールド座標系で回転させたいのですが、このときの回転行列はどのようにして求めればよろしいのでしょうか? Y軸に45度回転させても座標系はそのまま。そしてX軸で45度させるためにはどのようにすればよろしいのでしょうか? わかりづらいですが添付した図のようになればと思っています。

  • 任意の地点からの回転座標の求め方

    座標A,B,C,Dからなる四角形を中心Dを基準にして、 θ角度を回転させたあとの各点の座標(X,Y)が知りたいのですが、 計算式がまったく分かりません。 昔、勉強したのかもしれませんが文系だったのでさっぱりです。 どなたか教えてください。 お願いいたします。 A--------D |           | |     D     | |           | B--------C

  • ある平面に対する座標変換

    空間上に(x,y,z)の点があるとします。 この点を、ある平面 ax + by+ cz + d = 0 から見た時の値(x',y',z')に変換したいのですが、どうやったらいいかわかりません。 座標系が、xyz-座標から新しい座標系、x'y'z'-座標に変わるのですが、どうやれば、いいかわかりません。回転させるだけなら、それほど、難しくないと思うのですが、それだけじゃないので、わからないです。 よろしくお願いいたします。

  • 空間の座標の求め方

    下の図のような直方体があります。(縦2a、横2b、長さ2c) この直方体の中心を原点とし、図のように3軸を決めます。 この時、A(c,-b,a)、B(c,b,a)、C(c,-b,-a)、D(c,b,-a)とおけ、 y軸を中心としてθ1だけ回転(90°回転すると面ABCDがZ軸の上を向く)、 z軸を中心としてθ2だけ回転(90°回転するとABCD面はy軸の正方向(右側)を向く)した場合、 A,B,C,Dはそれぞれどのような座標になるのか求めたいのです。 θ2だけ回転した場合は、xv平面で考えればいいので、 なんとか自分で出すことが出来ました。 Aは(c・cosθ2+b・sinθ2、c・sinθ2-b・cosθ2、a) Bは(c・cosθ2-b・sinθ2、c・sinθ2+b・cosθ2、a) Cは(c・cosθ2+b・sinθ2、c・sinθ2-b・cosθ2、-a) Dは(c・cosθ2-b・sinθ2、c・sinθ2+b・cosθ2、-a) で、問題はこれにθ1の回転が加わった場合、 A,B,C,Dの座標はどうなるのでしょうか? 空間で考えるのが苦手なため、ここでストップしてしまっています。 10年以上数学というものから遠ざかってて苦戦しています。 数学詳しい方、ぜひ教えて下さい。 (できれば考え方も。この際、空間図形に強くなりたいもので)

  • 三角形の2点の座標と各辺の長さから残り座標の算定

    お世話になります。 三角形の2点の座標と、各点の長さから、残りの点の座標を求めたいと思います。 ネットで検索すると、 図形をX軸上に移動し、さらに両側の座標が既知の1辺をX軸上に重ねるように回転させて、 残りの点(平行及び回転移動した)の座標を求めた後、 回転及び平行の移動させ元に戻す方法がありました。 簡単な図形で計算した処、三角形の面積ヘロンの公式を利用して求める回転後の座標が、正しく求まりません。 わかりましたら、教えてください。

  • 空間図形、平面の方程式

    平面の方程式ax+by+cz=dが与えられて 作図せよ、という問題があるのですが、 どのように作図していくといいですか? (1)5x-2y+3z=10 まず1問目がこれだったのですが、 自分なりに考え、座標軸に交わる点を考え それらを結び合わせてみたのですが (2)3x+2y-z=0 2問目は原点を突き抜けており 自分の力では作図ができませんでした。 以下もっとわからなかった3,4問目 (3)3x+2z=6 (4)2z-7=0 よろしくお願いします。

  • 3次元座標の求め方

    3次元座標の求め方 原点 0,0,0 を中心にした球体面上の正面から見た頂点座標で、 回転による移動後の座標の求め方を知りたいです。 例えば、球面の半径が 100 で、頂点の座標 x1, y1, z1 が 100, 0, 0 にある場合、 Y軸に対してπ/2 rad (90度)回転した座標 x2, y2, z2 は 0, 0, -100 になると思うのですが、 この新たな3つの座標 x2, y2, z2 を導くにはどのように計算しているのでしょうか。 平面上の円運動のように cos sin の組み合わせ等で導き出せるのでしょうか。 x1, y1, z1 から、 Y軸に対してr回転 した場合の各 x2, y2, z3 の出し方 X軸に対してθ回転 した場合の各 x3, y3, z3の出し方 Z軸に対してΘ回転 した場合の各 x4, y4, z4 の出し方 のような形で、導くための計算を順にお教えいただけると嬉しいです。 最終的には、元座標 x, y, z をY軸にr、更にそこからX軸にθ、更にそこからZ軸にΘで X, Y, Z になる、といった形で求められるようになりたいと思っています。 座標は原点 0, 0, 0を中心に 上に行くほどYが「減少」 右に行くほどXが「増加」 奥に行くほどZが「増加」 Y減少 ↑ _ Z増加 │/` ├─→ X増加 という形になっています 自分のわかる限りで質問内容を細かく記述したつもりですが、 数学の知識に乏しいので、記号などの使い方や説明の不備があるかもしれません。 何か不足があった場合には補足させて頂きます。 以上宜しくお願い致します。

  • 3次元で回転させた座標値の計算方法

    点(Ax、Ay、Az)を3次元空間にある、点(Bx、By、Bz)から、点(Cx、Cy、Cz)に向かう直線を軸に任意の角度で回転させたときの、点(A’x、A’y、A’z)の座標値の計算方法を教えてください。ただし自分の数学レベルは中学生並でベクトルが少しだけ理解できるていどです。よろしくお願いします。

  • VB 座標軸の回転?

    VB2010にて、joystickを使って点を移動するプログラムを作っています。 小さな○を三つ三角形状に配置し、ひとつの○をリーダーとして、これをジョイスティックで操作してその他を○を隊形を持って追従させます。 ジョイスティックを上に倒すと画面上でグループは右に動き、ジョイスティックを右に倒すとグループの中心を軸に位置回転します。 問題はこのあとなんですが、位置回転後の動きでジョイスティックを上に動かしたとき、リーダーの向いている方向に前進させたいのですがどうすればいいでしょうか? 現状では、位置回転した場所から右に動きます。 例えばリーダーの位置が右斜め下にいるのならば、ジョイスティック上で右斜め下に前進するようにしたいのです。 座標軸を動かせばいいのかと思いますが記述の方法がよくわかりません。 解りづらい説明だと思いますので随時補足します。 回答の方をよろしくお願いします。