three.js 源碼注釋(二十八)Cameras/Camera.js,three.jscamera.js

來源:互聯網
上載者:User

three.js 源碼注釋(二十八)Cameras/Camera.js,three.jscamera.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檔案的注釋.

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.