<!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>