使用Threejs,我想在两个具有x, y, z坐标的点之间创建一个管。我不想依靠一些方程来生成曲线上的点。这份文档把我弄糊涂了。我在网上搜索了一些例子;没有运气。我做了些实验,但毫无用处。首先,我不明白我想提供的点和这里使用的参数10之间的关系:const path = new CustomSinCurve( 10 );
你能有一个没有曲线的管吗?非常感谢你的帮助!
下面是解决这个问题的代码:
for (var i = 0; i < MyXYXarray.length; i++) {
aPoints.push(new THREE.Vector3(MyXYXarray[i][0], MyXYXarray[i][1], MyXYXarray[i][2]));
}
const pipeSpline = new THREE.CatmullRomCurve3(aPoints);
const tubeGeometry = new THREE.TubeGeometry(pipeSpline, 100, 25, 10, false);
const wireframeMaterial = new THREE.MeshBasicMaterial({ color: 0x99ccff, opacity: 1, wireframe: true, transparent: true });
var mesh = new THREE.Mesh(tubeGeometry, wireframeMaterial);
mesh.scale.set(params.scale, params.scale, params.scale);
var parent = new THREE.Object3D();
parent.add(mesh);
var scene.add(parent);