CylinderGeometry

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

CylinderGeometry」(2013/04/20 (土) 23:39:53) の最新版変更点

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

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

#divclass(modif){更新日:&date(), r57} #divclass(hd){#hr()} #divid(d0){} (わかりやすくするためにワイヤーフレームも一緒に表示している。) ***説明 >&b(){THREE.CylinderGeometry (} radiusTop, radiusBottom, height, radiusSegments, heightSegments, openEnded &b(){)} 円柱のジオメトリを作る。 ***パラメータ :''radiusTop'' <float>[= 20] |上面の半径。0にすると円錐(実際は正多角形の錐)になる(→ [[錐はLatheとどっちで作ればいいのか?>#CylinderVersusLathe]]) :''radiusBottom'' <float>[= 20] |底面の半径。 :''height'' <float>[= 100] |高さ。 :''radiusSegments'' <int>[= 8] |円周の分割数。 :''heightSegments'' <int>[= 1] |高さの分割数。 :''openEnded'' <bool>[= false] |true:フタをしない、false:フタをする (@ITの記事だと逆に書いてあるので注意。) ***例 ジオメトリ作ってマテリアルと合わせてメッシュにしてシーンに追加するまで。 var cylinder = new THREE.Mesh( new THREE.CylinderGeometry(20,60,40,16), // 上面半径20、下面半径60、高さ40、円周分割数16 new THREE.MeshLambertMaterial( { color: 0x00ff00 } ) ); scene.add( cylinder ); ---- ***&aname(CylinderVersusLathe,option=nolink){円錐・正多角錐を作るのにCylinderとLathe(回転体)どちらがいいのか} Cylinderがいいっぽい。追試募集。 ****頂点数・面数 Latheで∠の形の辺を回して正16角錐をつくると、見たまんま頂点数は18(底面まわり16と中心1 + 錐の頂点1)、面数は32(底面16 + 側面16)になる。 Cylinderで上面半径ゼロにすると面とか頂点とか適当に削除されるが、錐の頂点はくっついていない。 面数は同じ32(底面16 + 側面16)だが、頂点数は35(底面まわり17(Circleと同じく円周の始点と終点はくっついていない)と中心1 + 錐の頂点17)。 ****処理速度 作る速度 var i = 0, mtr = new THREE.MeshLambertMaterial( { color: 0xff0000 } ), cylnd, lathe; var d = new Date(); for(i=0; i<5000; i++){ cylnd = new THREE.Mesh( new THREE.CylinderGeometry(0,60,40,16), mtr ); } console.log('Cylinder: ' + ( (new Date()).getTime() - d.getTime() ) ); var points = [ new THREE.Vector3(0,0,0), new THREE.Vector3(60,0,0), new THREE.Vector3(0,0,40) ]; var d = new Date(); for(i=0; i<5000; i++){ lathe = new THREE.Mesh( new THREE.LatheGeometry(points,16), mtr ); } console.log('Lathe: ' + ( (new Date()).getTime() - d.getTime() ) ); こんな感じで計ったところ、Cylinder 600ms、Lathe 1400ms ぐらい。 Latheは最後の法線計算するので時間食ってるっぽい。 書く速度 scene.add(cylnd); // さっきの var d = new Date(); for(i=0; i<5000; i++){ renderer.render( scene, camera ); } console.log('render: ' + ( (new Date()).getTime() - d.getTime() ) ); scene.add(lathe); // さっきの lathe.rotation.x = -Math.PI/2; // 同じ位置にする lathe.position.y -= 20; // 同じ位置にする for(i=0; i<5000; i++){ renderer.render( scene, camera ); } console.log('render: ' + ( (new Date()).getTime() - d.getTime() ) ); 両方 850ms ぐらいで全く変わらず。頂点多いから不利とか全くないらしい。 ****他 Latheは色がめんどくさそう。 #include(-g_cylinder) //.
#divclass(modif){更新日:&date(), r58} #divclass(hd){#hr()} #divid(d0){} (わかりやすくするためにワイヤーフレームも一緒に表示している。) ***説明 >&b(){THREE.CylinderGeometry (} radiusTop, radiusBottom, height, radiusSegments, heightSegments, openEnded &b(){)} 円柱のジオメトリを作る。 ***パラメータ :''radiusTop'' <float>[= 20] |上面の半径。0にすると円錐(実際は正多角形の錐)になる(→ [[錐はLatheとどっちで作ればいいのか?>#CylinderVersusLathe]]) :''radiusBottom'' <float>[= 20] |底面の半径。 :''height'' <float>[= 100] |高さ。 :''radiusSegments'' <int>[= 8] |円周の分割数。 :''heightSegments'' <int>[= 1] |高さの分割数。 :''openEnded'' <bool>[= false] |true:フタをしない、false:フタをする (@ITの記事だと逆に書いてあるので注意。) ***例 ジオメトリ作ってマテリアルと合わせてメッシュにしてシーンに追加するまで。 var cylinder = new THREE.Mesh( new THREE.CylinderGeometry(20,60,40,16), // 上面半径20、下面半径60、高さ40、円周分割数16 new THREE.MeshLambertMaterial( { color: 0x00ff00 } ) ); scene.add( cylinder ); ---- ***&aname(CylinderVersusLathe,option=nolink){円錐・正多角錐を作るのにCylinderとLathe(回転体)どちらがいいのか} Cylinderがいいっぽい。追試募集。 ****頂点数・面数 Latheで∠の形の辺を回して正16角錐をつくると、見たまんま頂点数は18(底面まわり16と中心1 + 錐の頂点1)、面数は32(底面16 + 側面16)になる。 Cylinderで上面半径ゼロにすると面とか頂点とか適当に削除されるが、錐の頂点はくっついていない。 面数は同じ32(底面16 + 側面16)だが、頂点数は35(底面まわり17(Circleと同じく円周の始点と終点はくっついていない)と中心1 + 錐の頂点17)。 ****処理速度 作る速度 var i = 0, mtr = new THREE.MeshLambertMaterial( { color: 0xff0000 } ), cylnd, lathe; var d = new Date(); for(i=0; i<5000; i++){ cylnd = new THREE.Mesh( new THREE.CylinderGeometry(0,60,40,16), mtr ); } console.log('Cylinder: ' + ( (new Date()).getTime() - d.getTime() ) ); var points = [ new THREE.Vector3(0,0,0), new THREE.Vector3(60,0,0), new THREE.Vector3(0,0,40) ]; var d = new Date(); for(i=0; i<5000; i++){ lathe = new THREE.Mesh( new THREE.LatheGeometry(points,16), mtr ); } console.log('Lathe: ' + ( (new Date()).getTime() - d.getTime() ) ); こんな感じで計ったところ、Cylinder 600ms、Lathe 1400ms ぐらい。 Latheは最後の法線計算するので時間食ってるっぽい。 書く速度 scene.add(cylnd); // さっきの var d = new Date(); for(i=0; i<5000; i++){ renderer.render( scene, camera ); } console.log('render: ' + ( (new Date()).getTime() - d.getTime() ) ); scene.add(lathe); // さっきの lathe.rotation.x = -Math.PI/2; // 同じ位置にする lathe.position.y -= 20; // 同じ位置にする for(i=0; i<5000; i++){ renderer.render( scene, camera ); } console.log('render: ' + ( (new Date()).getTime() - d.getTime() ) ); 両方 850ms ぐらいで全く変わらず。頂点多いから不利とか全くないらしい。 ****他 Latheは色がめんどくさそう。 #include(-g_cylinder) //.

表示オプション

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