サイトトップ

Director Flash 書籍 業務内容 プロフィール

JaGra PROFESSIONAL SCHOOL Seminar

JaGra ActionScript講座


ActionScript 3.0の3次元表現と数学の基礎

− 三角関数でいつもより多めに回してみる −

*文中にリンクしたPDFは拙著『ActionScript 3.0による三次元表現ガイドブック』の最終DTP原稿(ただし、赤系特色で印刷されるべきカラーが設定上シアンで表示される)。

 

サンプル(FLA)ファイル: JaGra101130_samples.zip(CS4形式/Zip圧縮/360KB)

01-01 三角関数って?

角度を座標にするのがsinとcos(PDF)

01-02 三角関数で円の楕円の軌道を描く(まだ2次元)

円の方程式(PDF)

楕円の方程式(PDF)

楕円軌道で動かす(01_elliptic_motion)

  • 中心と半径を調整
    x = 中心のx座標+水平の半径*Math.cos(ラジアン)
    y = 中心のy座標+垂直の半径*Math.sin(ラジアン)
  • sinとcosは±1の範囲で値が変わる

遠近法を適用する(PDF)

  • 投影像の大きさ = オブジェクトの大きさ×焦点距離/(焦点距離 + z位置)
  • 投影比率: 焦点距離/(焦点距離 + z位置)

01-03 3次元空間で回す

zx平面で円運動させる(02_ 3d_circular_motion)

  • 透視投影はFlash Player任せでよい
  • ただし、座標を扱い始めると透視投影の計算は必要

y軸で回す(03_3d_rotation_1face)

  • 面を容れ物(Spriteインスタンス)に入れる
  • 容れ物ごとy軸で回す
    • だったら、三角関数いらないじゃん!

01-04 三角関数とベクトル

面の裏と表を確かめる(04_3d_box_rotation)

  • ベクトルの内積で裏表がわかる
  • 裏面は表示しない

ベクトルの足し算(PDF)

直交ベクトルに分解

ベクトルの内積は水平なベクトルの大きさ(cosθ)を使う(PDF)

  • 内積の正負はcosθの値で決まる
  • 視線と面の向きの内積を調べる
    • 内積がマイナス(cosθ< 0): 面と視線が向合っているので表
    • 内積が0(cosθ= 0): 面と視線がちょうど垂直なので真横
    • 内積がプラス(cosθ> 0): 面と視線が同じ向きなので裏

3次元空間で座標を扱う − ちょっと透視投影の話(PDF/05_Vector3D)

  • 座標そのものは値なのでパースペクティブはかからない
  • パースペクティブは2次元に表示するときの話なので別計算

ベクトルの外積の大きさは垂直なベクトルの大きさ(sinθ)を使う(PDF)



作成者: 野中文雄
作成日: 2010年11月30日


Copyright © 2001-2010 Fumio Nonaka.  All rights reserved.