アプリ版:「スタンプのみでお礼する」機能のリリースについて

任意のゼロでないベクトル(a,b,c)を原点中心に回転し、z軸に合致させるとする。同じ回転移動を3次元座標上の任意の点(x,y,z)に対して行った時の移動後座標が知りたいのです。

計算と結果を教えて下さい。

A 回答 (9件)

A No. 1 です。

補足。

「回転行列」
http://www.cg.info.hiroshima-cu.ac.jp/~miyazaki/ …

ロドリゲスの公式もあります。

この回答への補足

Rは書いてましたね。

補足日時:2013/06/15 00:04
    • good
    • 2
この回答へのお礼

ありがとうございます。
どえらい簡単な表現ですね。自分の計算と比べて見ます。公式でのIは単位行列ですか?また、Rは何の行列ですか?

お礼日時:2013/06/14 23:57

A No.6 「お礼」欄の「ひとつ疑問」について。


二段階移動の結果は、一発移動の結果とは異なります。
一致することが保証されるのは、(a,b,c) の定数倍
の点だけです。なぜ異なるのかの理由は、A No.8 に
あるとおりですね。
一方、一発移動のみに制限すると、回転は一意に決まり、
A No.2 No.6 に書いたようなものになります。
二段階移動の結果は、この回転に、回転軸まわりの捻り
を加えたものになります。
    • good
    • 0

>2段階移動になってます。


>この結果は一発移動とは異なる結果なのでしょうか?

異なります。

例えば正午に日本を北極に移動させる地球の回転と、夕方まで待って日本を北極に移動させる回転では
北極での太陽に対する日本の向きが違いますよね。

基礎知識としてちょっと補足しておくと

1) 3次元で原点が移動しない回転は自由度が3。つまり3このパラメータで回転を完全に指定できる。
2) 回転は常に回転軸を持つ。つまり回転で不動な点が必ず存在する。
3) 複数の回転の組み合わせは回転
4) 回転行列は直行行列
5) 回転軸は回転行列の唯一の実固有値(=1)の固有ベクトルと並行(回転角≠0 つまり単位行列を除く)。
    • good
    • 0
この回答へのお礼

ありがとうございます。
3次元で回転移動の経験がないのでびっくりしました。

お礼日時:2013/06/15 21:18

A No.2 を実装してみる。


回転軸は、第二軸にするより、第三軸へ移したほうが
回転の向きが解りやすいかな?

(a,b,c) 方向の単位ベクトルを
v1 = (α,β,γ) = (a,b,c)/√(a^2+b^2+c^2)、
z 軸の単位方向ベクトルを z1 = (0,0,1)
と置き、
p = v1×z1 = (β,-α,0),
p1 = p/|p| = (β,-α,0)/√(α^2+β^2),
q1 = p1×z1 = (-α,-β,0)/√(α^2+β^2),
と定義すると、
q1,z1,p1 をこの順に第1,2,3基底ベクトルとして
正規直交基底が作れる。

問題の回転は、この基底上の成分表示で
第3軸を回転軸とする回転だから、
R =
  cosθ  -sinθ  0
  sinθ   cosθ  0
    0    0   1
を表現行列とする一次変換で表される。
ここに現れる θ は、
sinθ = |p| = |v1×z1|,
cosθ = v1・z1
で求められる。
特に sinθ の正負と関連して、
上記の q1,z1,p1 がこの順番に並んでいることが重要。

この一次変換を標準座標の上で成分表示するには、
q1,z1,p1 をこの順に第1,2,3列とする行列 T によって
座標変換した TR(T^-1) を、表現行列とすればよい。
(x,y,z) の移動先は、 TR(T^-1)(x,y,z)^t で表される。
ただし、T^-1 は T の逆行列、
(x,y,z)^t は (x,y,z) を転置した列ベクトル。
    • good
    • 1
この回答へのお礼

詳細な回答をありがとうございます。
大変申し訳ありませんが、大学数学はまったく駄目です。一応理系大卒ですが。

ベクトルをxーy平面に正射影した方向をX軸、Z軸はもとのz軸と同じになるよう(X,Y,Z)座標系を設定し、XーZ平面内で回転移動させて求めました。もちろん元の(x,y,z)座標系との関係式は回転移動の式で表しました。

ひとつ疑問があります。
他回答で、回転方法で結果が変わるとの説明がありました。そこで回転移動は(X,YZ)座標での一回だけ、(x,y,z)座標との関係式を求めるだけで、これは移動でないよーみたいなセコイ解法にしました。ところが、定式化すると、どうみても「ベクトルをz軸の回りで回転させxz平面内に移動した後、zx平面内で回転移動して軸に合わせた」2段階移動になってます。
この結果は一発移動とは異なる結果なのでしょうか?

お礼日時:2013/06/14 23:45

「回転」するだけでは長さは変わりません>#4.

    • good
    • 0

計算というほどの計算はいらないですが・・・



(a.b.c.)を原点を中心に回転してZ軸に合致させるとすると

(0,0,c)になりますよね。(Z軸に一致ということは、X座標Y座標がともに0
ということなので)

ですので

(x、y、z)に同じ回転をくわえると(x-a,Y-b,0)

となります。あえて説明を加えるとすれば

aがゼロになる変化は、a-a

bがゼロになる変化は、b-b

だからです。
    • good
    • 1
この回答へのお礼

ありがとうございます。

お礼日時:2013/06/15 21:23

計算というほどの計算はいらないですが・・・



(a.b.c.)を原点を中心に回転してZ軸に合致させるとすると

(0,0,c)になりますよね。(Z軸に一致ということは、X座標Y座標がともに0
ということなので)

ですので

(x、y、z)に同じ回転をくわえると(x-a,Y-b,0)

となります。あえて説明を加えるとすれば

aがゼロになる変化は、a-a

bがゼロになる変化は、b-b

だからです。
    • good
    • 0

(a,b,c) 方向の単位ベクトルを v、


(0,0,1) を z と置く。

問題の回転は、
z, v×z, v×z×z を軸とする直交座標上で、
第二軸を回転軸とする回転移動として表される。
回転角 θ は、|v×z|=|sinθ| で求まる。

座標軸を軸とする回転は、容易に行列で表現される。
それに冒頭の座標変換を施せば、
標準座標上での表現行列となる。
    • good
    • 0

この条件だけでは回転が一意に決まりませんが、回転軸を(a,b,c)とz軸の外積、回転量は内積で求めれば回転が一意に定まります。

後はロドリゲスの公式で回転行列を求めることができます。
    • good
    • 0
この回答へのお礼

ありがとうございます。
回転が一意に決まらない、え?まさかと思って図形を思い浮かべましたが、確かにその通りでした。要望はベクトルとz軸を含む平面内での回転です。こうすれば一意に決まると思います。

お礼日時:2013/06/14 23:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています