<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> html, body { margin: 0; padding: 0; } div#canvas-frame { border: none; cursor: pointer; width: 100%; height: 600px; background-color: #EEEEEE; } </style> </head> <body> <div id="canvas-frame"></div> <script src="js/three.js"></script> <script> //定義一些需要的變量 var renderer, camera, scene, light, object; var width, height; function initThree(){ width = document.getElementById('canvas-frame').clientWidth; height=document.getElementById('canvas-frame').clientHeight; renderer= new THREE.WebGLRenderer({ antialias:true }); renderer.setSize(width,height); document.getElementById('canvas-frame').appendChild(renderer.domElement); renderer.setClearColor(0xFFFFFF, 1.0); } //定義相機 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 }); } function initScene(){ scene = new THREE.Scene(); } function initLight(){ light = new THREE.DirectionalLight(0xFF0000,1.0,0); light.position.set(100,100,200); scene.add(light); } var cube; function initObject(){ //生命一個幾何體 var geometry = new THREE.Geometry(); //定義一種線條的材質,使用THREE.LineBasicMaterial類型來定義,它接受一個集合作為參數 /* * LineBasicMaterial( parameters ) Parameters是一個定義材質外觀的對象,它包含多個屬性來定義材質,這些屬性是: Color:線條的顏色,用16進制來表示,默認的顏色是白色。 Linewidth:線條的寬度,默認時候1個單位寬度。 Linecap:線條兩端的外觀,默認是圓角端點,當線條較粗的時候才看得出效果,如果線條很細,那么你幾乎看不出效果了。 Linejoin:兩個線條的連接點處的外觀,默認是“round”,表示圓角。 VertexColors:定義線條材質是否使用頂點顏色,這是一個boolean值。意思是,線條各部分的顏色會根據頂點的顏色來進行插值。(如果關於插值不是很明白,可以QQ問我,QQ在前言中你一定能夠找到,嘿嘿,雖然沒有明確寫出)。 Fog:定義材質的顏色是否受全局霧效的影響。 好了,介紹完這些參數,你可以試一試了,在課后,我們會展示不同同學的傑出作品。下面,接着上面的講,我們這里使用了頂點顏色vertexColors: THREE.VertexColors,就是線條的顏色會根據頂點來計算。 var material = new THREE.LineBasicMaterial( { vertexColors: THREE.VertexColors } ); * */ var material = new THREE.LineBasicMaterial({vertexColors:true}); var color1 = new THREE.Color(0x444444),color2=new THREE.Color(0xFF0000); //線的材質可以由2店的顏色決定 //定義兩種顏色,分別表示線條兩個端點的顏色 var p1 = new THREE.Vector3(-100,0,100); var p2 = new THREE.Vector3(100,0,-100); //幾何體里面有一個vertices變量,可以用來存放點。 // 定義2個頂點的位置,並放到geometry中 geometry.vertices.push(p1); geometry.vertices.push(p2); //為4中定義的2個頂點,設置不同的顏色 geometry.colors.push(color1,color2); //定義一條線 //定義線條,使用THREE.Line類 //第一個參數是幾何體geometry,里面包含了2個頂點和頂點的顏色。第二個參數是線條的材質,或者是線條的屬性,表示線條以哪種方式取色。第三個參數是一組點的連接方式 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); } window.onload=threeStart(); </script> </body> </html>