「ParametricGeometry」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
#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)
//.