提交 068ab90a 编写于 作者: M Mr.doob

Merge remote-tracking branch 'hughes/dev' into dev

/**
* @author hughes
*/
THREE.CircleGeometry = function ( radius, segments, thetaStart, thetaLength ) {
THREE.Geometry.call( this );
radius = radius || 50;
thetaStart = thetaStart !== undefined ? thetaStart : 0;
thetaLength = thetaLength !== undefined ? thetaLength : Math.PI * 2;
segments = segments !== undefined ? Math.max(3, segments) : 8;
var i, uvs = [],
center = new THREE.Vector3(), centerUV = new THREE.UV( 0.5, 0.5 );
this.vertices.push(center);
uvs.push( centerUV );
for ( i = 0; i <= segments; i ++ ) {
var vertex = new THREE.Vector3();
vertex.x = radius * Math.cos( thetaStart + i / segments * thetaLength );
vertex.y = radius * Math.sin( thetaStart + i / segments * thetaLength );
this.vertices.push( vertex );
uvs.push( new THREE.UV( ( vertex.x / radius + 1 ) / 2, - ( vertex.y / radius + 1 ) / 2 + 1) );
}
var n = new THREE.Vector3(0, 0, -1);
for ( i=1; i <= segments; i ++ ) {
var v1 = i;
var v2 = i + 1 ;
var v3 = 0;
this.faces.push( new THREE.Face3( v1, v2, v3, [ n, n, n ]));
this.faceVertexUvs[ 0 ].push( [ uvs[ i ], uvs[ i + 1 ], centerUV ] );
}
this.computeCentroids();
this.computeFaceNormals();
this.boundingSphere = { radius: radius };
};
THREE.CircleGeometry.prototype = new THREE.Geometry();
THREE.CircleGeometry.prototype.constructor = THREE.CircleGeometry;
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册