重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

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増加

という形になっています

自分のわかる限りで質問内容を細かく記述したつもりですが、
数学の知識に乏しいので、記号などの使い方や説明の不備があるかもしれません。
何か不足があった場合には補足させて頂きます。
以上宜しくお願い致します。

A 回答 (3件)

> 座標は原点 0, 0, 0を中心に


> 上に行くほどYが「減少」
> 右に行くほどXが「増加」
> 奥に行くほどZが「増加」

これを普通の人は右手座標系と呼びます。
ところで二次元の回転行列は覚えていますか?
X = x cosθ - y sinθ
Y = x sinθ + y cosθ
または
[X] = [ cosθ -sinθ][x]
[Y] [ sinθ cosθ][y]
ですね。
二次元の回転というのを三次元で考えると,右手座標系でzが正の方から負の方にxy平面をみて反時計まわりに回転しているわけです。それでは三次元でy軸周りの回転は,yが正の方から負の方にzx平面をみて反時計まわりの回転と考えられます。xz平面ではなくzx平面であることに注意してください。
そうすると,それを表す行列は
Z = z sinθ - x cosθ
X = z cosθ + x sinθ
ですから
[X] = [ cosθ 1 sinθ][x]
[Y] [ 1 1 1 ][y]
[Z] [-sinθ 1 cosθ][z]
となります。
他の軸についての回転もゆっくり考えれば簡単でしょう。
    • good
    • 1
この回答へのお礼

二次元の回転行列から考えることで無事たどり着けました。

ちなみに自分のパターンでY軸回転は下記のような結果になりました。

Z = -x sinθ + z cosθ
X = x cosθ+ z sinθ

どうもありがとうございました。

お礼日時:2010/06/11 01:30

オイラー角を使うのが普通じゃないでしょうか。


http://ja.wikipedia.org/wiki/%E3%82%AA%E3%82%A4% …

このwikipediaの項目ではZ-X-Zのオイラー角が紹介されていますが、
一番よく使われてるのはZ-Y-Zのオイラー角だと思います。
    • good
    • 0
この回答へのお礼

オイラー角一つとっても色々あるのですね。
自分の理解力が及ばず、これからまだまだ学ぶことが多そうです。
どうもありがとうございました。

お礼日時:2010/06/11 01:50

中2で習いました。


でも、月日がたつと、さっぱり忘れました。(滝汗)
シータも忘れました。ホントです(滝汗)

アフィン変換とか透視変換で調べると、あるみたいですよ。公式が。
3Dの基本です。
    • good
    • 0
この回答へのお礼

検索するとたしかに色々出てきて、勉強になりました。

どうもありがとうございました。

お礼日時:2010/06/11 01:33

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