ParametricGeometry

「ParametricGeometry」の編集履歴(バックアップ)一覧はこちら

ParametricGeometry」(2013/04/20 (土) 23:50:19) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

#divclass(modif){更新日:&date(), r57} #divclass(hd){#hr()} #divid(d0){} (わかりやすくするためにワイヤーフレームも一緒に表示。) ***説明 >&b(){THREE.ParametricGeometry ( func, slices, stacks}, useTris &b(){)} 関数 func に従って、パラメトリック曲面を作る。 上例では単純な立体を表示しているが、パラメトリック曲面で作れる形状は多種多様である([[例2を参照>#variousEx]])。 ***パラメータ :''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 ); ---- ***&aname(variousEx,option=nolink){例2} #divid(d1){} (わかりやすくするためにワイヤーフレームも一緒に表示し、裏面には別色マテリアルを貼っている。) 上行:左から[[フェルマーの螺旋>>http://www.3d-meier.de/tut3/Seite189.html]]、[[クラインの壺>>http://www.3d-meier.de/tut3/Seite12.html]]、[[クライン・サイクロイド>>http://www.3d-meier.de/tut3/Seite111.html]] 下行:左から[[メビウスの輪>>http://www.3d-meier.de/tut3/Seite13.html]]、[[巻き貝>>http://www.3d-meier.de/tut3/Seite88.html]]の[[コハクダマ>>http://www.3d-meier.de/tut3/Seite94.html]]、[[ホイットニーの傘>>http://www.3d-meier.de/tut3/Seite22.html]] (参考:[[Homepage Jürgen Meier>>http://www.3d-meier.de/]] > [[Tutorials>>http://www.3d-meier.de/Tutorials.html]] > [[Parametrische Flächen>>http://www.3d-meier.de/tut3/Seite0.html]]) #include(-g_parametric) #include(-g_parametric2) //.
#divclass(modif){更新日:&date(), r58} #divclass(hd){#hr()} #divid(d0){} (わかりやすくするためにワイヤーフレームも一緒に表示。) ***説明 >&b(){THREE.ParametricGeometry ( func, slices, stacks}, useTris &b(){)} 関数 func に従って、パラメトリック曲面を作る。 上例では単純な立体を表示しているが、パラメトリック曲面で作れる形状は多種多様である([[例2を参照>#variousEx]])。 ***パラメータ :''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 ); ---- ***&aname(variousEx,option=nolink){例2} #divid(d1){} (わかりやすくするためにワイヤーフレームも一緒に表示し、裏面には別色マテリアルを貼っている。) 上行:左から[[フェルマーの螺旋>>http://www.3d-meier.de/tut3/Seite189.html]]、[[クラインの壺>>http://www.3d-meier.de/tut3/Seite12.html]]、[[クライン・サイクロイド>>http://www.3d-meier.de/tut3/Seite111.html]] 下行:左から[[メビウスの輪>>http://www.3d-meier.de/tut3/Seite13.html]]、[[巻き貝>>http://www.3d-meier.de/tut3/Seite88.html]]の[[コハクダマ>>http://www.3d-meier.de/tut3/Seite94.html]]、[[ホイットニーの傘>>http://www.3d-meier.de/tut3/Seite22.html]] (参考:[[Homepage Jürgen Meier>>http://www.3d-meier.de/]] > [[Tutorials>>http://www.3d-meier.de/Tutorials.html]] > [[Parametrische Flächen>>http://www.3d-meier.de/tut3/Seite0.html]]) #include(-g_parametric) #include(-g_parametric2) //.

表示オプション

横に並べて表示:
変化行の前後のみ表示: