three.js 原始碼註釋(八十四)extras/geometries/ParametricGeometry.js
俺也是剛開始學,好多地兒肯定不對還請見諒.
以下程式碼是THREE.JS 原始碼檔案中extras/geometries/ParametricGeometry.js檔案的註釋.
/** * @author zz85 / https://github.com/zz85 * Parametric Surfaces Geometry * based on the brilliant article by @prideout http://prideout.net/blog/?p=44 * * new THREE.ParametricGeometry( parametricFunction, uSegments, ySegements ); * */ /* ///ParametricGeometry用來在三維空間內通過引數func的定義,生成一個幾何體.有了這個物件,各種你想要的集合體,發揮你的數學天賦吧. /// /// 用法: /// var func = function(u,v){ /// var point = new THREE.Vector3(); /// point.x = 100 + Math.cos(u); /// point.y = 100 + Math.sin(v); /// return point; /// }; /// var geometry = new THREE.ParametricGeometry(func,8,8); /// var material = new THREE.MeshBasicMaterial({color: 0x00ff00}); /// var param = new THREE.Mesh(geometry,material); /// scene.add(param); */ ///<summary>ParametricGeometry</summary> ///<param name ="func" type="funciton">功能函式,必須接受引數u,v,返回Vector3</param> ///<param name ="slices" type="int">u方向上的細分線段數</param> ///<param name ="stacks" type="int">v方向上的細分線段數</param> THREE.ParametricGeometry = function ( func, slices, stacks ) { THREE.Geometry.call( this ); //呼叫Geometry物件的call方法,將原本屬於Geometry的方法交給當前物件ParametricGeometry來使用. var verts = this.vertices; var faces = this.faces; var uvs = this.faceVertexUvs[ 0 ]; var i, il, j, p; var u, v; var stackCount = stacks + 1; var sliceCount = slices + 1; //計算頂點資料,壓入vertices陣列. for ( i = 0; i <= stacks; i ++ ) { v = i / stacks; for ( j = 0; j <= slices; j ++ ) { u = j / slices; p = func( u, v ); verts.push( p ); } } var a, b, c, d; var uva, uvb, uvc, uvd; //計算三角面,以及貼圖uv. for ( i = 0; i < stacks; i ++ ) { for ( j = 0; j < slices; j ++ ) { a = i * sliceCount + j; b = i * sliceCount + j + 1; c = (i + 1) * sliceCount + j + 1; d = (i + 1) * sliceCount + j; uva = new THREE.Vector2( j / slices, i / stacks ); uvb = new THREE.Vector2( ( j + 1 ) / slices, i / stacks ); uvc = new THREE.Vector2( ( j + 1 ) / slices, ( i + 1 ) / stacks ); uvd = new THREE.Vector2( j / slices, ( i + 1 ) / stacks ); faces.push( new THREE.Face3( a, b, d ) ); uvs.push( [ uva, uvb, uvd ] ); faces.push( new THREE.Face3( b, c, d ) ); uvs.push( [ uvb.clone(), uvc, uvd.clone() ] ); } } // console.log(this); // magic bullet // var diff = this.mergeVertices(); // console.log('removed ', diff, ' vertices by merging'); this.computeFaceNormals(); //計算面的法線 this.computeVertexNormals(); //計算頂點法線 }; /************************************************* ****下面是ParametricGeometry物件的方法屬性定義,繼承自Geometry物件. **************************************************/ THREE.ParametricGeometry.prototype = Object.create( THREE.Geometry.prototype );
以下程式碼是THREE.JS 原始碼檔案中extras/geometries/ParametricGeometry.js檔案的註釋.
相關推薦
three.js 原始碼註釋(八十四)extras/geometries/ParametricGeometry.js
俺也是剛開始學,好多地兒肯定不對還請見諒. 以下程式碼是THREE.JS 原始碼檔案中extras/geometries/ParametricGeometry.js檔案的註釋. /** * @author zz85 / https://github.com/zz8
three.js 原始碼註釋(九十四)extras/core/Shape.js
俺也是剛開始學,好多地兒肯定不對還請見諒. 以下程式碼是THREE.JS 原始碼檔案中extras/core/Shape.js檔案的註釋. /** * @author zz85 / http://www.lab4games.net/zz85/blog * Def
three.js 原始碼註釋(三十四)Texture/Texture.js
俺也是剛開始學,好多地兒肯定不對還請見諒. 以下程式碼是THREE.JS 原始碼檔案中Texture/Texture.js檔案的註釋. /** * @author mrdoob / http://mrdoob.com/ * @author alteredq /
three.js 原始碼註釋(五十九)objects/Mesh.js
俺也是剛開始學,好多地兒肯定不對還請見諒. 以下程式碼是THREE.JS 原始碼檔案中objects/Mesh.js檔案的註釋. /** * @author mrdoob / http://mrdoob.com/ * @author alteredq / htt
three.js 原始碼註釋(二十二)Core/Object3D.js
俺也是剛開始學,好多地兒肯定不對還請見諒. 以下程式碼是THREE.JS 原始碼檔案中Core/Object3D.js檔案的註釋. /** * @author mrdoob / http://mrdoob.com/ * @author mikael emting
three.js 原始碼註釋(五十一)Material /MeshDepthMaterial.js
俺也是剛開始學,好多地兒肯定不對還請見諒. 以下程式碼是THREE.JS 原始碼檔案中materials/MeshDepthMaterial.js檔案的註釋. /** * @author mrdoob / http://mrdoob.com/ * @author
three.js 原始碼註釋(二十七)Core/BufferGeometry.js
俺也是剛開始學,好多地兒肯定不對還請見諒. 以下程式碼是THREE.JS 原始碼檔案中Core/BufferGeometry.js檔案的註釋. /** * @author alteredq / http://alteredqualia.com/ */ /* //
three.js 原始碼註釋(七十八)extras/geometries/IcosahedronGeometry.js
俺也是剛開始學,好多地兒肯定不對還請見諒. 以下程式碼是THREE.JS 原始碼檔案中extras/geometries/IcosahedronGeometry.js檔案的註釋. /** * @author timothypratley / https://git
three.js 原始碼註釋(五十)Material /MeshPhongMaterial.js
俺也是剛開始學,好多地兒肯定不對還請見諒. 以下程式碼是THREE.JS 原始碼檔案中materials/MeshPhongMaterial.js檔案的註釋. /** * @author mrdoob / http://mrdoob.com/ * @author
three.js 原始碼註釋(六十)objects/Line.js
俺也是剛開始學,好多地兒肯定不對還請見諒. 以下程式碼是THREE.JS 原始碼檔案中objects/Line.js檔案的註釋. /** * @author mrdoob / http://mrdoob.com/ */ /* ///Line物件,建立一條線,或者
前端學習(八十四) DOM-剪下板(Dom)
Selection 是一個全域性物件,通過window.getSelection()獲得,代表當前使用者在網頁上選擇的文字範圍或游標所在的位置 方法 Selection.toString() 獲得選中文字的字串 window.getSelection().toString()
Redis原始碼分析(三十四)--- redis.h服務端的實現分析(1)
上次剛剛分析過了客戶端的結構體分析,思路比較簡答,清晰,最後學習的是服務端的實現,服務端在Redis可是重中之重,裡面基本上囊括了之前模組中涉及到的所有知識點,從redis的標頭檔案就可以看出了,redis.h程式碼量就已經破1000+行了,而且都還只是一些變
Android開發筆記(八十四)使用Properties讀寫屬性值
Properties概述 Java中的配置檔案常為.properties檔案,而Properties類便是讀寫此類檔案的工具。屬性檔案有兩種格式,一種是文字格式,其內容是“鍵=值”的形式,文字註釋資訊可以用"#"來註釋。另一種是XML格式,鍵值對遵循XML規範,Androi
three.js 原始碼註釋(四十九)Material /MeshNormalMaterial.js
俺也是剛開始學,好多地兒肯定不對還請見諒. 以下程式碼是THREE.JS 原始碼檔案中Material/MeshNormalMaterial.js檔案的註釋. /** * @author mrdoob / http://mrdoob.com/ * * para
three.js 原始碼註釋(十四)Math/Sphere.js
俺也是剛開始學,好多地兒肯定不對還請見諒. 以下程式碼是THREE.JS 原始碼檔案中Math/Sphere.js檔案的註釋. // File:src/math/Sphere.js /** * @author bhouston / http://exocorte
three.js 原始碼註釋(四十二)Light/AreaLight.js
俺也是剛開始學,好多地兒肯定不對還請見諒. 以下程式碼是THREE.JS 原始碼檔案中Light/AreaLight.js檔案的註釋. /** * @author MPanknin / http://www.redplant.de/ * @author alte
three.js 原始碼註釋(四)Math/Vector3.js
以下程式碼是THREE.JS 原始碼檔案中Math/Vector3.js檔案的註釋. // File:src/math/Vector3.js /** * @author mrdoob / http://mrdoob.com/ * @author *kil
three.js 原始碼註釋(三)Math/Vector2.js
以下程式碼是THREE.JS 原始碼檔案中Math/Vector2.js檔案的註釋. // File:src/math/Vector2.js /** * @author mrdoob / http://mrdoob.com/ * @author philog
Java程式設計師從笨鳥到菜鳥之(八十二)細談Spring(十一)深入理解spring+struts2整合(附原始碼)
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
Java程式設計師從笨鳥到菜鳥之(八十一)細談Spring(十)深入原始碼分析Spring之HibernateTemplate
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!