Last updated: 2015 -2014. Kajiyama                [ 目次に戻る ]

プログラム言語Processingが準備している立体図形処理の関数


  1. 全てを使うことはないが,関数のリファレンスの全体像を理解する.

    1. いろいろな用途で使用するProcessingの関数が用意されている.観察すること.
    2. 最新版 2.x版の関数Reference
    3. 旧 1.5版の日本語の関数リファレンス


  2. 3次元図形に関する関数

    1. キャンバスと3次元座標系

      ・キャンバスの三次元の表示画面には,

       それぞれのピクセル(画素)の位置に座標(x, y, z)が与えられている.

      ・このX-Y-Z座標系は,算数や数学で習ったものとは,

       +Y軸・+Z軸の向きが違うので,注意が必要である.

    2. 3次元の基本図形

      機能processingの関数単位はピクセル単位
      3次元キャンバスsize (w, h,renderer);画面の幅 (width)と高さ(height),3D (P3D)
      変換translate (x, y, z);原点の移動量
      直方体box (w, h, depth);直方体の幅 (width)と高さ(height)と奥行き(depth),位置は別に定義
      sphere (radius);球の半径(radius),位置は別に定義
      四角形sphereDetail (ures, vres);球の解像度,経度の球分割数(ures),緯度の球分割数(vres)
      注意:box(),sphere()は原点(0, 0, 0)に作成される.


    3. 3次元の曲線

      機能processingの関数単位はピクセル単位
      スプライン曲線curve ( );四点の座標(x, y, z)を決めスプライン曲線を描く
      ベジェ曲線bezier ( );四点の座標(x, y, z)を決めベジェ曲線を描く


    4. 3次元図形の座標変換

      機能processingの関数単位はピクセル単位
      平行移動translate (x, y, z);X軸方向の移動量 (x)とY軸方向の移動量 (y)とZ軸方向の移動量 (z)
      回転移動rotate (angle);原点を中心に指定した回転角度(angle)で座標を回転,
      単位はラジアン
      X軸回転移動rotateX (angle);原点を中心に指定した回転角度(angle)でX軸にそって回転,
      単位はラジアン
      Y軸回転移動rotateY (angle);原点を中心に指定した回転角度(angle)でY軸にそって回転,
      単位はラジアン
      Z軸回転移動rotateZ (angle);原点を中心に指定した回転角度(angle)でZ軸にそって回転,
      単位はラジアン
      拡大・縮小scale (size), scale (x, y, z);一括して倍率を変えるには(size),XとYとZの倍率を各々変えるには(x, y, z)
      座標系の保存pushMatrix ( );現在の座標系を保存する
      座標系の復元popMatrix ( );保存した座標系を復元する


  3. Processing ではPVector がベクトルで position(位置),velocitiy(速度),acceleration(加速度), 減速率(deceleration)を表す

    ・高校の復習 速さ(スカラー)と速度(ベクトル)
    ・高校の復習 等速直線運動  ・ 等加速度直線運動
    ・リファレンス ベクトルのクラス

    PVector クラスの機能ベクトルの計算メソッドを準備している
    ユークリッド幾何のベクトル
    ベクトルx成分:
    ベクトルy成分:
    ベクトルz成分:
    PVector 変数名;
     変数名.x
     変数名.y
     変数名.z
    x,y,z 要素をベクトルにセットset();
    3Dのランダムな向きを持った、新しい単位ベクトルrandom3D();
    ベクトルのコピーget();
    ベクトル足し算add();
    ベクトル引き算sub();
    ベクトルをスカラー倍mult();
    ベクトルをスカラーで割るdiv();
    ベクトルの大きさ(マグニチュード)mag();
    ベクトルの大きさを2乗magSq());
    ベクトルの大きさを設定setMag();
    2点間の距離dist();
    2 つのベクトル間の角度angleBetween();
    2つのベクトルのドット積dot();
    2つのベクトルのクロス積(3Dのみ)cross();
    ベクトルを長さ 1 に正規化normalize();
    ベクトルのマグニチュードを制限limit();
    ベクトルの回転角度heading();
    ベクトルと他のベクトルとの線形補間lerp();
    float 型の配列として、ベクトルを表すarray();

[ 目次に戻る ]