THREE.js案例源码学习-geometry_birds

Bird.js:
var Bird = function () {
//保存当前的this
	var scope = this;
//继承THREE.Geometry
	THREE.Geometry.call( this );

	v(   5,   0,   0 );
	v( - 5, - 2,   1 );
	v( - 5,   0,   0 );
	v( - 5, - 2, - 1 );

	v(   0,   2, - 6 );
	v(   0,   2,   6 );
	v(   2,   0,   0 );
	v( - 3,   0,   0 );

	f3( 0, 2, 1 );
	f3( 0, 3, 2 );

	f3( 4, 7, 6 );
	f3( 5, 6, 7 );
//计算法向量
	this.computeFaceNormals();
	var test=new THREE.BoxGeometry();
	function v( x, y, z ) {

		scope.vertices.push( new THREE.Vector3( x, y, z ) );

	}

	function f3( a, b, c ) {

		scope.faces.push( new THREE.Face3( a, b, c ) );

	}

}
//将THREE.Geometry的方法赋给Bird
Bird.prototype = Object.create( THREE.Geometry.prototype );
//实现了Bird类对自身原型继承。
//案例:Bird.prototype = new Animal(); Bird.prototype.constructor = Bird;”
// Bird.prototype = new Animal();”意思是Bird.prototype原型作为Animal类的实例
// 那么Bird原型对象中包含了一个指向Animal原型对象的指针;“Bird.prototype.constructor = Bird;”
// 意思是因为“Bird.prototype = new Animal();”时,Bird.prototype.constructor指向了Animal原型对象,将其纠正重新指向Bird。
// 代码运行后你会发现pig.fly()会报错,此fly()行为undefined,那是因为Animal原型中没有fly行为。到此我们就实现了Bird类对Animal类的原型继承。-此案例来源于网络
Bird.prototype.constructor = Bird;
未写完。。。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值