three.js 源码注释(二十八)Cameras/Camera.js
商域无疆 (http://blog.csdn.net/omni360/)
本文遵循“署名-非商业用途-保持一致”创作公用协议
转载请保留此句:商域无疆 - 本博客专注于 敏捷开发及移动和物联设备研究:数据可视化、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/)
本文遵循“署名-非商业用途-保持一致”创作公用协议
转载请保留此句:商域无疆 - 本博客专注于 敏捷开发及移动和物联设备研究:数据可视化、GOLANG、Html5、WEBGL、THREE.JS,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。
以下代码是THREE.JS 源码文件中Cameras/Camera.js文件的注释.
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。