Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/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,我想在文本上添加一条水平线,然后拉伸: var geo = new THREE.TextGeometry("x", geometry_options); var mat = new THREE.MeshBasicMaterial({color: 0, side:THREE.DoubleSide}); geo.computeBoundingBox (); var vec = new THREE.Shape(); vec.moveTo(geo.boundingBox.min.x, geo.bound

我想在文本上添加一条水平线,然后拉伸:

var geo = new THREE.TextGeometry("x", geometry_options);
var mat = new THREE.MeshBasicMaterial({color: 0, side:THREE.DoubleSide});
geo.computeBoundingBox ();
var vec = new THREE.Shape();
vec.moveTo(geo.boundingBox.min.x, geo.boundingBox.max.y);
vec.lineTo(geo.boundingBox.max.x, geo.boundingBox.max.y);
geo.addShape(vec);
var mesh = new THREE.Mesh(geo, mat);
调用geo.addShapevec时发生Javascript错误。我想我有一些误解。我对THREE.js还不是很熟悉。任何帮助或替代方法都将不胜感激。

而不是geo.addShapevec;试一试

geo.mergevec.makeGeometry

但是你的几何体只是一条线,它没有多边形,所以看起来可能不对

另一种方法是将两个对象分组在一起,一个是网格,另一个是线,例如:

 var all = new THREE.Obejct3D();
 var geo = new THREE.TextGeometry("x", geometry_options);
 var mat = new THREE.MeshBasicMaterial({color: 0, side:THREE.DoubleSide});
 geo.computeBoundingBox ();
 var mesh = new THREE.Mesh(geo, mat);
 all.add(mesh);
 var vecg = new THREE.Geometry();
 vecg.vertices.push(
    new THREE.Vector3(geo.boundingBox.min.x, geo.boundingBox.max.y,0),
    new THREE.Vector3(geo.boundingBox.max.x, geo.boundingBox.max.y,0));
 var line = new THREE.Line(vecg, new THREE.LineBasicMaterial());
 all.add(line);

然后是scene.addall;根据需要进行etc

合并不起作用,但我使用了分组的思想,效果很好。谢谢你,比约克!