2次元のShapeから厚みをつけて3次元にできる
Three.jsの例、寝る前にwebgl_geometry_shapes.htmlを見る。
ブラウザで見ると複数の図形が表示される。
でもやってることはどれもほとんど同じ。
穴あき円の場合、
extrudeSettings = { amount: 20, bevelEnabled: true, bevelSegments: 2, steps: 2 };
arcShape = new THREE.Shape();
arcShape.moveTo( 50, 10 );
arcShape.arc( 10, 10, 40, 0, Math.PI*2, false );
holePath = new THREE.Path();
holePath.moveTo( 20, 10 );
holePath.arc( 10, 10, 10, 0, Math.PI*2, true );
arcShape.holes.push( holePath );
arc3d = arcShape.extrude( extrudeSettings );
パラメータをいろいろいじってみる。
1行目はどんな厚みのさせ方をさせるかを記述してる感じ:
- amount - 厚み
- bevelEnabled - 角を丸める:true
- bevelSegments - 角を丸める細かさ
- steps - 厚みの分割数
の設定をextrudeSettingsに格納している。
あとは
- Shapeクラスのオブジェクトを作る
- ベジェ曲線や弧、直線を指定するメソッドを使って図形を描く
- (穴あき円の場合)穴のためにPathクラスのオブジェクトを作ってShareクラスのオブジェクトにあるholesに追加
- extrudeメソッドでextrudeSettingsを反映させる
そんな感じ。
気づけば梅雨が開けてたw
今日も暑い。
2012/07/27 02:57