Flashで3D表現する方法とは?

このQ&Aのポイント
  • Flashでの3D表現について奮闘してますが、x軸とy軸しか持っていないFlashでどのように立体表現をするか悩んでいます。
  • マウスカーソルの位置によって回転スピードを加速させる仕組みも考えていますが、奥行きのZ軸の扱いについて理解が不足しています。
  • sinシーターが奥行きを表すのか、それとも別の要素を表すのかについても分からず困っています。
回答を見る
  • ベストアンサー

3D表現

Flashで3D表現しようと奮闘しています。 といいましても、4つのメニューボタンが手前から置くにくるくると回転するというだけの表現です。 マウスカーソルの位置によって回転スピードは加速する仕掛けです。 そこで色々調べてみたのですが、 そもそもx軸とy軸しかFlashは持ちえていないのに、そこに立体表現をアクションスクリプトで組み込むとすれば、 奥行きのZ軸はどのように考えればいいのでしょうか。 cosシーターが、回転するボタンのx座標を表すとすれば、 sinシーターが何をあらわすことになるのでしょう? 奥行きになるのでしょうか? どうも二次元上の三次元表現というのがピンと来なくて困っています。

  • shevy
  • お礼率67% (703/1046)
  • CSS
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • rara_sun
  • ベストアンサー率50% (271/539)
回答No.1

FlashMXって何?って感じなので、適切な回答はできないのですが、こうしてみてはどうでしょうか? まず、方眼用紙に実際に絵を書いて考えてはいかがですか? 頭の中だけで考えるよりも、はっきり考えられます。 いかがでしょうか? Z軸の描き方によって、Z軸をあらわす直線式が かわりますよね? Z軸の直線って、(X,Y)の集合でしょ?

shevy
質問者

お礼

非常によくわかりました。 z軸をあらわす直線式の意味が。 これは本当に参考になりました。 ありがとうございました。

関連するQ&A

  • 3次元の回転角度の求め方について教えてください。

    3次元の回転角度の求め方について教えてください。 3軸の加速度センサーがあります。 まず加速度センサーのZ軸を重力方向に置いたときの加速度センサーの値を(x1,y1,z1)=(0,0,1)とします。 加速度センサーのx軸、y軸、z軸をそれぞれ回転させたあとの加速度センサーの値を(x2,y2,z2)とします (このとき加速度センサーは静止しているので、センサーの値は重力の分力になります)。 (x2,y2,z2)が既知のとき(x1,y1,z1)に戻すためのそれぞれの回転角はどのように求めれば良いのか教えてください。 (x2,y2,z2)→(x1,y1,z1)へ移動するときの回転角を φ(z軸の回転角)、ψ(x軸の回転角)、θ(y軸の回転角) とします。 回転行列 (x1) = (cosφ -sinφ 0) (cosθ 0 sinθ) (1 0 0 ) (x2) (y1) = (sinφ cosφ 0) (0 1 0 ) (0 cosψ -sinψ) (y2) (z1) = (0 0 1) (-sinθ 0 cosθ) (0 sinψ cosψ ) (z2) より,3行3列の行列を計算すると 0=cosφcosθx2 + (-sinφcosψ+cosφsinθsinψ)y2+(sinφsinψ+cosφsinθcosψ)z2 0=sinφcosθx2 + (cosφcosψ+sinφsinθsinψ)y2+(-cosφsinψ+sinφsinθcosψ)z2 1=-sinθx2 + cosθsinψy2 + cosθcosψz2 となると思うのですが、この式からφ、ψ、θが導きだせません。 どうすれば求めることができるか教えていただけますか。

  • なぜ回転行列が以下のようになるのでしょうか。

    3次元の座標系があります。軸はX,Y,Zです。 Cθ=cosθ Sθ=sinθ でなぜ画像のようになるのかが分かりません。 画像の左上がX軸に関してθだけ回転させた回転行列。 同様に、右はY軸に関して、左下はZ軸に関してθだけ回転させた回転行列です。 cosθ,sinθのつく場所はだいたい分かってきたのですが、符号がどうしてそうなるのかが分かりません。 各軸を原点から見て時計回りを正とするそうです。 よろしくお願いします。

  • 等角螺旋(らせん)の3次元的な数式表現

    等角螺旋(らせん)の数式表現について教えてください ひょんなことから等角螺旋形状のモデリングらしきことをすることになったのですが、 これの3次元的な表現方法がよくわかりません。 例えば、牛や羊の角は3次元の等角螺旋構造ではないかと思うのですが、 これを球座標表現、ひいてはxy座標で表現する場合、どのような数式であらわせるのでしょうか? 2次元平面内での表現は 極座標だと  r = exp(θ) このとき、螺旋上の点(x,y)は x = r*cosθ  y = r*sinθ とあらわせると思うのですが、 これを3次元空間内で表現する方法がよくわかりません ご教授いただければ幸いです よろしくお願いします

  • 線形代数 行列 対称 回転 

    3次元(xyz)におけるX軸に対する軸対称(回転対称)は、 3次元の回転行列を用いて、 1  0    0 0 cosθ -sinθ 0 sinθ cosθ θ=πとすると 1 0  0 0 -1 0 0 0 -1 と教えて頂きました。 前回の質問:http://okwave.jp/qa/q7596237.html その他の、y軸,z軸対称も同様に、y軸の回転行列 でθ=π,z軸の回転行列でθ=πとすれば導けるでしょうか? また、2次元(xy)における回転行列は、 cosθ -sinθ sinθ cosθ です。 これにθ=πを代入すると、 -1 0 0 -1 となります。 しかし、2次元における軸対称は 1 0 0 -1 となると思います。 どこが間違っているのでしょうか? 以上、ご回答よろしくお願い致します。

  • 球座標の回転角の取り方について

    極座標系の一種に、「球の半径 r 、 z 軸からの回転角(0からπ)、x 軸からの回転角(0から2π)」の3つを用いて座標を記述する、球座標というものがありますが、なぜ z 軸からの回転角なのでしょうか? 表現としては x - y 平面からの回転角(-π/2からπ/2)でもいいように思います。 (ほかに、もっといい例があるかもしれませんが一応) 個人的考えてみた結果、「z 軸からの」という表現になっている理由として (1)多次元への拡張を考慮したから(球座標系はもう使えませんが) (2)「x軸からの」という言い回しとの対応を図りたかったから (3)回転角の範囲が-π/2からπ/2、となって扱いにくいから(よく考えてないのでわかりませんが、場合によっては便利な場合もあるかもしれません) の3点が関係しているのかなと思いました。 定義だからそうなんだと言われればそれまでですが、皆さんはどのように考えますか? また、球座標に関して、z 軸からの回転角以外などの設定の仕方もあるのでしょうか?(先ほどの例のように) 信用はできないかもしれませんが、Wikipediaにはz軸設定でしか載っていませんでしたので。 回答よろしくお願いします。

  • 3次元の座標変換と角度について。

    3次元のシミュレーションの勉強をしています。 3次元の座標変換で x,y,z:変換前の座標; x',y',z':変換後の座標; θ:回転する角度; lx,ly,lz:平行移動量; としたとき、 X軸に関する回転              |1 0   0    0|              |0 cosθ sinθ 0| [x' y' z' 1] = [x y z 1]|0 -sinθ cosθ0|              |0 0   0   1| Y軸に関する回転              |cosθ0 -sinθ0|              |0   1 0   0| [x' y' z' 1] = [x y z 1]|sinθ0 cosθ 0|              |0   0 0   1| Z軸に関する回転              |cosθ sinθ 0 0|              |-sinθcosθ0 0| [x' y' z' 1] = [x y z 1]|0   0   1 0|              |0   0   0 1| 平行移動              |1 0 0 0|              |0 1 0 0| [x' y' z' 1] = [x y z 1]|0 0 1 0|              |lx ly lz 1| 物体の姿勢を表現するときは [物体の姿勢の変換行列] = [Z軸の回転行列][X軸の回転行列][Y軸の回転行列][平行移動]  |XX XY XZ 0| XX,XY,XZ・・・X軸の単位ベクトルを変換した場合のベクトル  |YX YY YZ 0| YX,YY,YZ・・・Y軸の単位ベクトルを変換した場合のベクトル = |ZX ZY ZZ 0| ZX,ZY,ZZ・・・Z軸の単位ベクトルを変換した場合のベクトル  |LX LY LZ 1| LX,LY,LZ・・・平行移動量ベクトル というのは分かるのですが、 X軸、Y軸、Z軸の単位ベクトルを変換した後のベクトルから X軸、Y軸、Z軸にそれぞれ何度ずつ回転させたかを求めるにはどのようにすればよいのでしょうか? つまり、X軸に対して30度、Y軸に対して45度、Z軸に対して60度回転させた後の |XX XY XZ 0| |YX YY YZ 0| |ZX ZY ZZ 0| |LX LY LZ 1| の値からX軸に対して30度、Y軸に対して45度、Z軸に対して60度回転している事を導きたいのです。 分かる方教えてください。 お願いします。 (質問に関して、 http://www.ceres.dti.ne.jp/~ykuroda/oyaj/bone/basic3d.html を参考にさせていただきました。)

  • 座標変換について

    直交座標系(x,y)において、x軸とy軸ともにθだけ回転して、新しい直交座標系(x’,y’)になるとするときに、 x'=x*cosθ+y*sinθ y'=-x*sinθ+y*cosθ になる。 というのは、どの参考書を見ても書いてあるのですが、何故そうなるのか、証明的なものがどこにものっていません。 誰か分かる方いらっしゃいますか?

  • オイラー角の正、負がよく分かりません

    添付図を参照ください。 最初、固定座標系O-xyzと全く一致していた回転座標系O-ξηζが、 ある位置まで回転する運動を三つの段階に分けて考える。 まず座標系O-ξηζをz軸のまわりにφだけ回転させると 添付図(a)のようになる。 つぎに(b)図のように座標系O-x'y'z'をy'軸のまわりにθだけ回転させる。 最後に(c)図のようにz''軸のまわりにΨだけ回転させて (x'',y'',z'')軸が(ξ,η,ζ)軸に一致したとすれば添付図のマトリックスを 計算すればよい。 と説明されていますが、Wikipediaでは、 z軸まわりは | cosθ -sinθ 0 |          | sinθ cosθ 0 |           | 0    0    1 | y軸まわりは |cosθ 0  sinθ |         | 0     1     0 |         |-sinθ  0   cosθ | となっています。いずれも反時計まわりに回転させているのに cos,sinの符号が一致しないのが分かりません。 分かりやすい説明をよろしくお願いいたします。

  • 3次元上にある物体の向きを中心に向かわせたい

    3次元上にある物体の向きを中心に向かわせたい 原点 0,0,0 を中心にした球体面上を回転移動している物体A、 例えば矢印があるとして、これを常に原点の方向を指すためには、 矢印のY軸回転・X軸回転・Z軸回転などをどのように制御すると良いでしょうか。 アングルは正面(Yが垂直 Xが水平 Zは奥行)から見た場合です。 物体Aの座標(x y z)がわかれば、全て導き出せるでしょうか? 2次元ですと、タンジェントの逆関数であるアークタンジェントを使い、 xとy座標がわかれば角度を導き出せるようですが、 3次元の場合もこの組み合わせになるのですか? 座標は原点 0, 0, 0を中心に 上に行くほどYが「減少」 右に行くほどXが「増加」 奥に行くほどZが「増加」 Y減少 ↑ _ Z増加 │/` ├─→ X増加 という形になっています。(前回の質問: http://okwave.jp/qa/q5954803.html から引用) 以上宜しくお願い致します。

  • オイラー角 回転行列

    オイラー角 回転行列 オイラー角と回転行列の関係が良く理解出来ないので 質問させて下さい。 工学や物理学で使われるオイラー角の回転順序は Z-X-Zが一般的だと認識しています。 ここで、3次元空間でのX軸、Y軸、Z軸周りの回転を 表す回転行列は、   1  0  0 Rx= 0 cosθ -sinθ 0 sinθ cosθ   cosθ 0 sinθ Ry= 0  1 0 -sinθ 0 cosθ    cosθ -sinθ 0 Rz= sinθ cosθ 0 0   0  1 です。 それぞれのθが、その軸での回転だと認識しています。 ここで、回転の方向はRxはY軸をZ軸に向ける方向、 RyはZ軸をX軸に向ける方向、RzはX軸をY軸に向ける方向。 Z-X-Zとは、 Rz・Rx・Rzの積という認識で良いでしょうか? 例えば、 Rx:Y軸をZ軸に向ける方向にπ/2 Ry:Z軸をX軸に向ける方向にπ/3 Rz:X軸をY軸に向ける方向にπ/4 回転させたとします。 Rz・Rx・Rzの積でなぜ、Ryの回転 が表現できるのですか? また、オイラー角はα,β,γと表記される事もありますが、 これは、X軸回転をα、Y軸回転をβ、Z軸回転をγで表して いるという事なのでしょうか? 分からない点だらけで申し訳御座いませんが、ご回答何卒よろしくお願い致します。