(わかりやすくするためにワイヤーフレームも一緒に表示。)
説明
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
(わかりやすくするためにワイヤーフレームも一緒に表示し、裏面には別色マテリアルを貼っている。)
最終更新:2013年04月20日 23:50