ParametricGeometry


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

更新日: 2013-04-20 , r58

(わかりやすくするためにワイヤーフレームも一緒に表示。)

説明

THREE.ParametricGeometry ( func, slices, stacks, useTris )
関数 func に従って、パラメトリック曲面を作る。
上例では単純な立体を表示しているが、パラメトリック曲面で作れる形状は多種多様である(例2を参照)。

パラメータ

func < function(u, v) >
引数u, vをとるパラメトリック関数。0≦u≦1、0≦v≦1。
slices <int>
uの分割数。
stack <int>
vの分割数。
useTris <bool>[= false]
trueにすると四角ポリゴンではなく三角ポリゴンを使う。面数は2倍になる。

ジオメトリ作ってマテリアルと合わせてメッシュにしてシーンに追加するまで。
// パラメトリック関数の定義
var paramFunc = function(u, v){
                         // uとvは0~1までの値をもらえる
  u *= 1;                //   uの定義域を設定。この例では0~1のまま。0~2πにしたいときなど適宜設定。
  v *= 1;                //   vの定義域を設定。
                         // パラメトリック曲面のある点の
  var z = u * 130;       // Z座標は u * 130
  var x = v * 130;       // X座標は v * 130
  var y;                 // Y座標は
  if(u<0.5 && v<0.25){   //   0≦u<0.5 かつ 0≦v<0.25のとき
    y = 0;               //     0
  }else if(0.5<=u && u<=0.75  &&  0.25<=v && v<=0.5){
                         //   0.5≦u≦0.75 かつ 0.25≦v≦0.5のとき
    y = 26;              //     26
  }else{                 //   それ以外のとき
    y = 0;               //     0
  }                      // とする。
  return new THREE.Vector3(x,y,z);
};                       // 作ったX・Y・Z座標のベクトルを返す。

var param = new THREE.Mesh(
  new THREE.ParametricGeometry(paramFunc, 8, 32),
                         // paramFuncに従って、uは8段階、vは32段階でパラメトリック曲面を作成
  new THREE.MeshLambertMaterial( { color: 0x00ff00 } )
);
scene.add( param );


例2

(わかりやすくするためにワイヤーフレームも一緒に表示し、裏面には別色マテリアルを貼っている。)