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合并不起作用,但我使用了分组的思想,效果很好。谢谢你,比约克!