three.js 源碼注釋(四十六)Material /LineBasicMaterial.js

來源:互聯網
上載者:User

標籤:webgl   javascript   three.js   源碼   三維   

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

本文遵循“署名-非商業用途-保持一致”創作公用協議

轉載請保留此句:商域無疆 -  本部落格專註於 敏捷開發及移動和物聯裝置研究:資料視覺效果、GOLANG、Html5、WEBGL、THREE.JS,否則,出自本部落格的文章拒絕轉載或再轉載,謝謝合作。


俺也是剛開始學,好多地兒肯定不對還請見諒.

以下代碼是THREE.JS 源碼檔案中Material/LineBasicMaterial.js檔案的注釋.

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


/** * @author mrdoob / http://mrdoob.com/ * @author alteredq / http://alteredqualia.com/ * * parameters = { *  color: <hex>, *  opacity: <float>, * *  blending: THREE.NormalBlending, *  depthTest: <bool>, *  depthWrite: <bool>, * *  linewidth: <float>, *  linecap: "round", *  linejoin: "round", * *  vertexColors: <bool> * *  fog: <bool> * } *//*///LineBasicMaterial方法根據參數parameters建立線段的虛線線型材質,parameters參數的格式看上面.LineBasicMaterial對象的功能函數採用/// 定義構造的函數原型對象來實現.大部分屬性方法繼承自材質的基類Material.用材質來定義線性,第一次見,真的很有想象力.簡直就是對繪圖軟體的終結.*////<summary>LineBasicMaterial</summary>///<param name ="parameters" type="String">string類型的JSON格式材質屬性參數</param>///<returns type="LineBasicMaterial">返回LineBasicMaterial,虛線線段材質.</returns>THREE.LineBasicMaterial = function ( parameters ) {THREE.Material.call( this );//調用Material對象的call方法,將原本屬於Material的方法交給當前對象LineBasicMaterial來使用.this.color = new THREE.Color( 0xffffff );//顏色屬性/*******************************************linecap和linejoin屬性詳解****************************************lineCap 屬性指定線段如何結束。只有繪製較寬線段時,它才有效。這個屬性的合法值如下表所示。預設值是:"round"。值含義"butt"這個預設值指定了線段應該沒有線帽。線條的末點是平直的而且和線條的方向正交,這條線段在其端點之外沒有擴充。"round"這個值指定了線段應該帶有一個半圓形的線帽,半圓的直徑等於線段的寬度,並且線段在端點之外擴充了線段寬度的一半。"square"這個值表示線段應該帶有一個矩形線帽。這個值和 "butt" 一樣,但是線段擴充了自己的寬度的一半。lineJoin 屬性設定或返回所建立邊角的類型,當兩條線交匯時。注釋:值 "miter" 受 miterLimit 屬性的影響。預設值:round值描述bevel建立斜角。round建立圓角。miter預設。建立尖角。********************************************linecap和linejoin屬性詳解****************************************/this.linewidth = 1;//線寬屬性,預設初始化為1.this.linecap = 'round';//線段端點的樣式,預設為round,和html的canvas裡的屬性一樣也有"butt", "round", "square"this.linejoin = 'round';//線段邊角的類型,當兩條線交匯時,預設為round,和html的canvas裡的屬性一樣也有"round", "bevel", "miter"this.vertexColors = THREE.NoColors;//頂點顏色,預設初始化為false.當然還可以有THREE.NoColors / THREE.VertexColors / THREE.FaceColors等選項,這裡顯示出了javascript的靈活性了.this.fog = true;//霧效,預設初始化為true.//TODO: LineDashedMaterial為啥有霧效屬性,而且為啥預設初始化為true?????????this.setValues( parameters );//調用Material類的setValues方法,將參數parameters賦值給當前LineBasicMaterial材質的屬性.};/*****************************************************************下面是LineBasicMaterial對象的方法屬性定義,繼承自Material*************************************************************/THREE.LineBasicMaterial.prototype = Object.create( THREE.Material.prototype );/*clone方法///clone方法複製LineDashedMaterial對象,*////<summary>clone</summary>///<param name ="material" type="LineBasicMaterial">LineBasicMaterial對象,可有可無.</param>///<returns type="LineBasicMaterial">返回複製的LineBasicMaterial對象</returns>THREE.LineBasicMaterial.prototype.clone = function () {//以下是將材質的屬性一一進行複製.var material = new THREE.LineBasicMaterial();THREE.Material.prototype.clone.call( this, material );material.color.copy( this.color );material.linewidth = this.linewidth;material.linecap = this.linecap;material.linejoin = this.linejoin;material.vertexColors = this.vertexColors;material.fog = this.fog;return material;//返回複製的LineBasicMaterial對象};


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

本文遵循“署名-非商業用途-保持一致”創作公用協議

轉載請保留此句:商域無疆 -  本部落格專註於 敏捷開發及移動和物聯裝置研究:資料視覺效果、GOLANG、Html5、WEBGL、THREE.JS,否則,出自本部落格的文章拒絕轉載或再轉載,謝謝合作。


以下代碼是THREE.JS 源碼檔案中Material/LineBasicMaterial.js檔案的注釋.

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

three.js 源碼注釋(四十六)Material /LineBasicMaterial.js

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.