three.js学习二——画线 - cytggit/Map-openlayers GitHub Wiki

  • 定义点

    var point1 = new THREE.Vecotr3(4,8,9); 
    或者
    var point1 = new THREE.Vector3();
    point1.set(4,8,9); 
    

画线

在Threejs中,一条线由点,材质和颜色组成。

  // 声明一个几何体
  var geometry = new THREE.Geometry(); 
  // 定义线条颜色-由顶点决定
  var color1 = new THREE.Color( 0x444444 ), color2 = new THREE.Color( 0xFF0000 );
  geometry.colors.push( color1, color2 );
  // 定义生成线条的形状
  var p1 = new THREE.Vector3( -100, 0, 100 );
  var p2 = new THREE.Vector3(  100, 0, -100 );
  geometry.vertices.push(p1);
  geometry.vertices.push(p2);
  // 定义线条的材质
  var material = new THREE.LineBasicMaterial( { vertexColors: true } );

  // 定义线条
  var line = new THREE.Line( geometry, material, THREE.LinePieces );
  // 线条添加进场景
  scene.add(line);

实例

sample

核心代码如下:

  function initObject() {
    for ( var i = 0; i <= 20; i ++ ) {
      var geometry = new THREE.Geometry();
      geometry.vertices.push( new THREE.Vector3( - 500, ( i * 50 ) - 500, 0 ) );
      geometry.vertices.push( new THREE.Vector3( 500, ( i * 50 ) - 500, 0 ) );
      var color1 = new THREE.Color( 0x444444 ), color2 = new THREE.Color( 0xFF0000 );
      geometry.colors.push( color1, color2 );
      var material = new THREE.LineBasicMaterial( { vertexColors: true,  opacity: 0.2 } );

      for(var j = 0; j <= 20; j ++ ){
        var line = new THREE.Line( geometry, material );
        line.position.z = ( j * 50 ) - 500;
        scene.add( line );
      }
    }
  }