Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Three.js中的三维曲线几何体_Javascript_Three.js - Fatal编程技术网

Javascript Three.js中的三维曲线几何体

Javascript Three.js中的三维曲线几何体,javascript,three.js,Javascript,Three.js,我有一个矢量数组,它定义了3D空间中的任意曲线形状。我可以使用Three.Geometry和Three.Line在Three.js中渲染曲线的轮廓,但我想用颜色填充它 我尝试使用THREE.ShapeGeometry和THREE.Mesh,但似乎THREE.ShapeGeometry仅适用于二维平面(顶点的z坐标被忽略)。我还尝试使用THREE.Geometry,除了定义我想要的顶点外,还定义了面,但没有成功 我该怎么做呢 代码: geom.vertices=curve.getPoints(10

我有一个矢量数组,它定义了3D空间中的任意曲线形状。我可以使用
Three.Geometry
Three.Line
在Three.js中渲染曲线的轮廓,但我想用颜色填充它

我尝试使用
THREE.ShapeGeometry
THREE.Mesh
,但似乎
THREE.ShapeGeometry
仅适用于二维平面(顶点的z坐标被忽略)。我还尝试使用
THREE.Geometry
,除了定义我想要的顶点外,还定义了面,但没有成功

我该怎么做呢

代码:

geom.vertices=curve.getPoints(100);
对于(变量i=0;i<97;i++){
几何面推(新的三面3(i,i+1,i+2));
}
var material=新的三个.MeshNormalMaterial();
obj=新的三网格(几何、材料);
场景。添加(obj);

通过将上述问题中的代码更改为以下摘录来修复:

geom.vertices = curve.getPoints(100);

for (var i = 0; i < 98; i++) {
    geom.faces.push(new THREE.Face3(0, i + 1, i + 2));
}

var materialObj = { color : 0xff0000, side: THREE.DoubleSide };
var material = new THREE.MeshBasicMaterial(materialObj);

obj = new THREE.Mesh(geom, material);
scene.add(obj);
geom.vertices=curve.getPoints(100);
对于(变量i=0;i<98;i++){
几何面推(新的三面3(0,i+1,i+2));
}
var materialObj={color:0xff0000,side:THREE.DoubleSide};
var材料=新的三种基本材料(材料BJ);
obj=新的三网格(几何、材料);
场景。添加(obj);
geom.vertices = curve.getPoints(100);

for (var i = 0; i < 98; i++) {
    geom.faces.push(new THREE.Face3(0, i + 1, i + 2));
}

var materialObj = { color : 0xff0000, side: THREE.DoubleSide };
var material = new THREE.MeshBasicMaterial(materialObj);

obj = new THREE.Mesh(geom, material);
scene.add(obj);