1、在Threejs中定义一个点
三维空间中的某一个点可以用一个坐标点来表示。一个坐标点由x,y,z三个分量构成。在three.js中,点可以在右手坐标系中表示:
空间几何中,点可以用一个向量来表示,在Three.js中也是用一个向量来表示的,代码如下所示:
THREE.Vector3 = function ( x, y, z ) {this.x = x || 0;this.y = y || 0;this.z = z || 0;};
2、操作点(设置点的坐标)
var point1 = new THREE.Vecotr3(4,8,9);
var point1 = new THREE.Vector3();point1.set(4,8,9);
3、画条线(LineBasicMaterial)
老路子,先定义场景、相机、渲染器,再定义实体,最后将实体添加到场景中
<body onload="threeStart();"><div id="canvas-frame"></div></body>
// 初始化场景var scene;function initScene() {scene = new THREE.Scene();}// 初始化相机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 renderer;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);}
var cube;function initObject() {// 创建一个几何体var geometry = new THREE.Geometry();// 设置线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 );geometry.vertices.push(p1);geometry.vertices.push(p2);geometry.colors.push( color1, color2 );var line = new THREE.Line( geometry, material, THREE.LinePieces );scene.add(line);}
renderer.clear();renderer.render(scene, camera);
| LineBasicMaterial( parameters ) parameters = {} | |
|---|---|
| Parameters是一个定义材质外观的对象,它包含多个属性来定义材质,这些属性是: | |
| Color | 线条的颜色,用16进制来表示,默认的颜色是白色。 |
| Linewidth | 线条的宽度,默认时候1个单位宽度。 |
| Linecap | 线条两端的外观,默认是圆角端点,当线条较粗的时候才看得出效果,如果线条很细,那么你几乎看不出效果了。 |
| Linejoin | 两个线条的连接点处的外观,默认是“round”,表示圆角。 |
| VertexColors | 定义线条材质是否使用顶点颜色,这是一个boolean值。意思是,线条各部分的颜色会根据顶点的颜色来进行插值。 |
| Fog | 定义材质的颜色是否受全局雾效的影响。 |
4、绘制一个网格
var cube;function initObject() {var geometry = new THREE.Geometry();geometry.vertices.push( new THREE.Vector3( - 500, 0, 0 ) );geometry.vertices.push( new THREE.Vector3( 500, 0, 0 ) );for ( var i = 0; i <= 20; i ++ ) {var line = new THREE.Line( geometry, new THREE.LineBasicMaterial( { color: '#FFFFFF', opacity: 0.2 } ) );line.position.z = ( i * 50 ) - 500;scene.add( line );var line = new THREE.Line( geometry, new THREE.LineBasicMaterial( { color: '#FFFFFF', opacity: 0.2 } ) );line.position.x = ( i * 50 ) - 500;line.rotation.y = 90 * Math.PI / 180;scene.add( line );}}

