线条Line,LinLoop,LineSegments
THREE.Line、THREE.LineLoop、THREE.LineSegments三个构造函数定义的是描点划线的方式,对应WebGL中的绘制模式mode,初学的时候不用深究,有个影响即可, 对于LineSegments方式而言,两个点确定一条直线,四个点确定2条直线;对于Line方式,四个点可以连续绘制出3条直线;对于LineLoop方式,与line模式基本一样,最后会产生闭合, 四个点可以连续绘制出4条直线。
![在这里插入图片描述](https://img.php1.cn/3cd4a/1eebe/cd5/4283cd4bbba41b87.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2F0dTExMTE=,size_16,color_FFFFFF,t_70)
代码如下:
var geometry = new THREE.Geometry(); //Geometry 利用 Vector3 或 Color 存储了几何体的相关 attributes(如顶点位置,面信息,颜色等)var material = new THREE.LineBasicMaterial({vertexColors: true}); //用于绘制线段的基础材质// 我们这里使用了顶点颜色vertexColors: THREE.VertexColors,就是线条的颜色会根据顶点来计算var color1 = new THREE.Color(0x444444),color2 = new THREE.Color(0xFF0000),color3 = new THREE.Color(0x00FF55);color4 = new THREE.Color(0x002211);// 线的材质可以由2点的颜色决定var p1 = new THREE.Vector3(-100, 0, 100);var p2 = new THREE.Vector3(100, 0, -100);var p3 = new THREE.Vector3(100, -100, 0);var p4 = new THREE.Vector3(-100, 100, 0);geometry.vertices.push(p1);geometry.vertices.push(p2);geometry.vertices.push(p3);geometry.vertices.push(p4);geometry.colors.push(color1, color2, color3, color4);line = new THREE.LineLoop(geometry, material);