使用three.js 畫漸變的直線
Three.js 是一款運(yùn)行在瀏覽器中的 3D 引擎,你可以用它創(chuàng)建各種三維場景,包括了攝影機(jī)、光影、材質(zhì)等各種對象。你可以在它的主頁上看到許多精彩的演示。不過,這款引擎目前還處在比較不成熟的開發(fā)階段,其不夠豐富的 API 以及匱乏的文檔增加了初學(xué)者的學(xué)習(xí)難度(尤其是文檔的匱乏)three.js的代碼托管在github上面。
http://github.com/mrdoob/three.js/
我們來看實(shí)例吧
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <script type="text/javascript" src="js/three.js" ></script> <style> div#canvas-frame{ border: none; cursor: pointer; width: 100%; height: 600px; background-color: #eeeeee; } </style> <script> var renderer; function initThree(){ width = document.getElementById('canvas-frame').clientWidth; height = document.getElementById('canvas-frame').clientHeight; //渲染器 決定渲染的結(jié)果和應(yīng)該畫在頁面的元素什么元素上面并且怎樣繪制。 renderer = new THREE.WebGLRenderer({ antialias : true }); renderer.setSize(width,height); //domElement表示渲染器中的畫布,所有的渲染都畫在上邊 document.getElementById('canvas-frame').appendChild(renderer.domElement); renderer.setClearColor(0xFFFFFF,1.0); } //相機(jī) 透視相機(jī) var camera; function initCamera(){ camera = new THREE.PerspectiveCamera(45,width/height,1,10000); camera.position.x = 0; camera.position.y = 1000; camera.position.z = 0; camera.up.x = 0; camera.up.y = 0; camera.up.z = 1; camera.lookAt({ x : 0, y : 0, z : 0 }); } //場景 var scene; function initScene(){ scene = new THREE.Scene(); } //燈光 var light; function initLight(){ light = new THREE.DirectionalLight(0xFF0000, 1.0 , 0); light.position.set(100, 100, 200); scene.add(light); } //幾何體 var cube; function initObject(){ //聲明的幾何體, 里邊有個vertices參數(shù)可以用來存放點(diǎn) var geometry = new THREE.Geometry(); //LineBasicMaterial(parameters)//basic翻譯:基礎(chǔ)//Material翻譯:原料 //Parameters:是一個定義材質(zhì)外觀的對象,它包含多個屬性來定義材質(zhì),這些屬性是//翻譯:參數(shù) //Color:線條的顏色,用16進(jìn)制來表示,默認(rèn)的顏色是白色。 //Linewidth //Linecap:線條兩端的外觀,默認(rèn)是圓角端點(diǎn),當(dāng)線條較粗的時候才看得出效果//cap翻譯:帽子 //Linejoin:兩個線條的連接點(diǎn)處的外觀,默認(rèn)是round 圓角//join翻譯:加入 //VertexColors:定義線條材質(zhì)是否使用頂點(diǎn)元素,這是一個boolean值。意思是線條各部分的顏色根據(jù)頂點(diǎn)的顏色來進(jìn)行插值。//vertex翻譯:頂點(diǎn) //Fog:定義材質(zhì)的顏色是否受全局霧效的影響。//翻譯:霧 var material = new THREE.LineBasicMaterial({ vertexColors: true }); //定義兩種顏色分別是兩個端點(diǎn)的顏色 var color1 = new THREE.Color( 0x444444 ), color2 = new THREE.Color( 0xFF0000 ); //線的材質(zhì)可以由兩點(diǎn)的顏色決定 var p1 = new THREE.Vector3(); var p2 = new THREE.Vector3(); p1.set(-100,0,100); p2.set(100,0,-100); geometry.vertices.push(p1); geometry.vertices.push(p2); geometry.colors.push(color1, color2); //定義線條 這里會傳進(jìn)去三個參數(shù) //第一個是幾何體geometry,里面包含兩個頂點(diǎn)和頂點(diǎn)顏色 //第二個是線條的材質(zhì) //第三個是一組點(diǎn)的連接方式 var line = new THREE.Line(geometry,material, THREE.LinePieces); //將線條添加到場景中 scene.add(line); } function threeStart(){ initThree(); initCamera(); initScene(); initLight(); initObject(); renderer.clear(); renderer.render(scene,camera); } </script> <body onload="threeStart()"> <div id="canvas-frame"></div> </body> </html>
希望本實(shí)例能給大家學(xué)習(xí)three.js帶來些幫助
相關(guān)文章
TypeScript 基本數(shù)據(jù)類型實(shí)例詳解
這篇文章主要為大家介紹了TypeScript 基本數(shù)據(jù)類型實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01TS中Array.reduce提示沒有與此調(diào)用匹配的重載解析
這篇文章主要為大家介紹了TS中Array.reduce提示沒有與此調(diào)用匹配的重載解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06數(shù)據(jù)結(jié)構(gòu)TypeScript之鄰接表實(shí)現(xiàn)示例詳解
這篇文章主要為大家介紹了數(shù)據(jù)結(jié)構(gòu)TypeScript之鄰接表實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01TypeScript學(xué)習(xí)輕松玩轉(zhuǎn)類型操作
這篇文章主要為大家介紹了TypeScript學(xué)習(xí)輕松玩轉(zhuǎn)類型操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07typescript封裝消息提示框插件ew-message使用實(shí)戰(zhàn)
這篇文章主要為大家介紹了typescript封裝消息提示框插件ew-message使用實(shí)戰(zhàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11