程序员人生 网站导航

three.js 源码注释(二十八)Cameras/Camera.js

栏目:htmlcss时间:2014-12-09 08:29:04

商域无疆 (http://blog.csdn.net/omni360/)

本文遵守“署名-非商业用处-保持1致”创作公用协议

转载请保存此句:商域无疆 -  本博客专注于 敏捷开发及移动和物联装备研究:数据可视化、GOLANG、Html5、WEBGL、THREE.JS否则,出自本博客的文章谢绝转载或再转载,谢谢合作。


俺也是刚开始学,好多地儿肯定不对还请见谅.

以下代码是THREE.JS 源码文件中Cameras/Camera.js文件的注释.

更多更新在 : https://github.com/omni360/three.js.sourcecode


/** * @author mrdoob / http://mrdoob.com/ * @author mikael emtinger / http://gomo.se/ * @author WestLangley / http://github.com/WestLangley */ /* ///Camera是相机对象的抽象基类,当创建相机时都从这个类继承.Camera对象的功能函数采取定义构造的函数原型对象来实现. */ ///<summary>Camera</summary> THREE.Camera = function () { THREE.Object3D.call( this ); //调用Object3D对象的call方法,将本来属于Object3D的方法交给当前对象Camera来使用. this.matrixWorldInverse = new THREE.Matrix4(); //为相机设置属性matrixWorldInverse,这是matrixWorld的逆矩阵,matrixWorld包括相机在世界坐标系的变换矩阵 this.projectionMatrix = new THREE.Matrix4(); //为相机设置属性projectionMatrix,包括相机的投影矩阵 }; /************************************************* ****下面是Camera对象的方法属性定义,继承自Object3D **************************************************/ THREE.Camera.prototype = Object.create( THREE.Object3D.prototype ); //Camrea对象从THREE.Objec3D的原型继承所有属性方法 /* ///lookAt方法用来旋转相机对象,并将对象面对空间中的点(参数vector) */ ///<summary>lookAt</summary> ///<param name ="vector" type="Vector">Vector3对象</param> ///<returns type="Camera">返回新的Camera对象</returns> THREE.Camera.prototype.lookAt = function () { // This routine does not support cameras with rotated and/or translated parent(s) //TODO: 这个程序不支持Camera摄像机的旋转和变换??英语不好,啥意思? var m1 = new THREE.Matrix4(); return function ( vector ) { m1.lookAt( this.position, vector, this.up ); //调用THREE.Matrix4.lookAt()方法 this.quaternion.setFromRotationMatrix( m1 ); //利用旋转矩阵 }; }(); /*clone方法 ///clone方法克隆Camera对象, */ ///<summary>clone</summary> ///<param name ="camera" type="Camera">Camera对象</param> ///<returns type="Camera">返回克隆的Camera对象</returns> THREE.Camera.prototype.clone = function ( camera ) { if ( camera === undefined ) camera = new THREE.Camera(); THREE.Object3D.prototype.clone.call( this, camera ); //调用THREE.Object3D.Clone(camera)方法,克隆相机对象 camera.matrixWorldInverse.copy( this.matrixWorldInverse ); //将相机的matrixWorldInverse属性值复制 camera.projectionMatrix.copy( this.projectionMatrix ); //将相机的projectionMatrix属性值复制 return camera; //返回克隆的Camera对象 };


商域无疆 (http://blog.csdn.net/omni360/)

本文遵守“署名-非商业用处-保持1致”创作公用协议

转载请保存此句:商域无疆 -  本博客专注于 敏捷开发及移动和物联装备研究:数据可视化、GOLANG、Html5、WEBGL、THREE.JS否则,出自本博客的文章谢绝转载或再转载,谢谢合作。


以下代码是THREE.JS 源码文件中Cameras/Camera.js文件的注释.

更多更新在 : https://github.com/omni360/three.js.sourcecode

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐